我有一个项目CoolTrayIcon
,并PopupMenu
设有残疾人AutoPopup
财产.我想定位PopupMenu并为用户显示它.位置正常,但如果用户点击或按ESC按钮,菜单不会关闭.我没有找到任何Active
可以帮助的属性,如果使用菜单.
在这里我定位菜单:
procedure TForm1.CoolTrayIcon1MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
var
pnt: TPoint; yy:integer;
begin
GetCursorPos(pnt);
yy:=pnt.y; yy:=yy-500;
if (Button=mbRight) then begin
PopupMenu1.Popup(pnt.X, yy);
end;
end;
Run Code Online (Sandbox Code Playgroud)
如果需要,我怎么能设法关闭菜单?
这是一个已知的问题,在这里讨论:
您需要将调用包装Popup()
如下:
SetForegroundWindow(Handle);
PopupMenu1.Popup(pnt.X, yy);
PostMessage(Handle, WM_NULL, 0, 0);
Run Code Online (Sandbox Code Playgroud)
在此代码中,Handle
是与通知图标关联的表单的窗口句柄.