如何在delphi中关闭自定义PopupMenu?
发布时间:2020-12-15 09:35:14 所属栏目:大数据 来源:网络整理
导读:我有一个带有CoolTrayIcon和PopupMenu的项目,具有禁用的AutoPopup属性. 我想定位PopupMenu并为用户显示它. 位置正常,但如果用户点击或按ESC按钮,菜单不会关闭. 我没有找到像Active这样的属性,如果使用或不使用菜单可能有帮助. 在这里我定位菜单: procedure
我有一个带有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; 如果需要,我怎么能设法关闭菜单? 解决方法
这是一个已知的问题,在这里讨论:
PRB: Menus for Notification Icons Do Not Work Correctly 您需要将调用包装到Popup(),如下所示: SetForegroundWindow(Handle); PopupMenu1.Popup(pnt.X,yy); PostMessage(Handle,WM_NULL,0); 在此代码中,Handle是与通知图标关联的表单的窗口句柄. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |