Как найти и закрыть всплывающее меню в Delphi?

У меня есть приложение MDI win32 в Delphi. Он имеет много форм, все они и их внутренние компоненты имеют собственные всплывающие меню.

Через некоторое время, когда запускается триггер приложения, он закрывает все дочерние окна. Но оно не закрывает всплывающее меню, если оно отображается. (Например, пользователь нажимает правую кнопку и покидает компьютер - всплывающее меню также должно закрываться при запуске триггера.)

Функция GetWindow не находит всплывающее меню.

Как найти всплывающее меню и закрыть его?

1 ответ

Решение
SendMessage(PopupList.Window, WM_CANCELMODE, 0, 0);

Глобальный Menus.PopupList Объект управляет окном, которое обрабатывает все сообщения для всплывающих меню VCL в приложении.

Другие вопросы по тегам