Заставить системное меню выпасть в указанном местеDelphi , Компоненты и Классы , МенюЗаставить системное меню выпасть в указанном месте
Оформил: DeeCo { How to popup the windows system menu? Maybe you can use Keybd_event to eumlate ALT+SPACE Maybe you can use a TPopupmenu. But they always have some problem. The method below is a perfect solution! BTW: if your form has borderstyle = bsNone, Please do it like this: Set forms style = bsSingle; and use the code below to set form boder: SetWindowLong(Handle, GWL_STYLE,GetWindowLong(Handle, GWL_STYLE) and (not WS_CAPTION) or WS_DLGFRAME or WS_OVERLAPPED); } procedure TForm1.Button1Click(Sender: TObject); const { Undocument message ID } WM_POPUPSYSTEMMENU = $313; begin SendMessage(Handle, WM_POPUPSYSTEMMENU, 0, MakeLong(Mouse.CursorPos.X, Mouse.CursorPos.Y)); end; Код на Delphi! Это код, который simulates системное меню (также известное как контекстное меню или всплывающее меню) отправкой custom сообщения ( Вот что это код делает:
Отправкой этого custom сообщения системное меню (например, ALT+SPACE) всплывает в текущей позиции курсора мыши. Обратите внимание, что этот код требует, чтобы форма имела валидный handle ( В отношении альтернативных решений можно использовать Маленькая рекомендация: вместо жесткого кодирования идентификатора сообщения
Таким образом, если вам нужно изменить идентификатор сообщения в будущем, вы только должны обновить эту одиночную константу. В статье описывается способ вызова системного меню Windows в указанном месте на экране с помощью процедуры TForm1.Button1Click(Sender: TObject). Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |