Закрытие всплывающего меню в приложении System Tray в Delphi

При показе всплывающего меню установите foreground window, затем пошлите сообщение WM_NULL после показа меню.

procedure TForm1.WndProc(var Msg : TMessage);
var
  p : TPoint;
begin
  case Msg.Msg of
    WM_USER + 1: case Msg.lParam of
                   WM_RBUTTONDOWN:
                   begin
                     SetForegroundWindow(Handle);
                     GetCursorPos(p);
                     PopupMenu1.Popup(p.x, p.y);
                     PostMessage(Handle, WM_NULL, 0, 0);
                   end;
                 end;
  end;
  inherited;
end;
1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...
Добавить комментарий