Так уж получилось, что мне самому приходиться показывать контекстное меню над иконкой приложения в трее. Вот так «PopupMenu2.Popup(a.WParam,a.LParam)». Проблема в том, что оно (меню) потом не хочет само исчезнуть без нажатия на его пункты (или клике на его приложении).
Так и висит там всё время открытым, во время того, как я щелкаю мышью на других приложениях.
Как заставить его вести себя как обычный TPopupMenu и автоматически скрыться?
Уважаемые авторы вопросов! Большая просьба сообщить о результатах решения проблемы на этой странице. Иначе, следящие за обсуждением, возможно имеющие аналогичные проблемы, не получают ясного представления об их решении. А авторы ответов не получают обратной связи. Что можно расценивать, как проявление неуважения к отвечающим от автора вопроса.
GetCursorPos(CursorPos);
if M.Msg=WM_USER+125 then
case M.LParam of
WM_RBUTTONUP:
begin
PopupMenu1.Popup(CursorPos.X, CursorPos.Y);
Wnd:=GetCapture
end;
WM_LBUTTONDBLCLK:
Visible:=not Visible;
WM_RBUTTONDOWN:
begin
SetForegroundWindow(Handle);
GetCursorPos(CursorPos);
PopupMenu1.Popup(CursorPos.x, CursorPos.y);
PostMessage(Handle, WM_NULL, 0, 0)
end;
Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter. Функция может не работать в некоторых версиях броузеров.