托盘菜单不能消失

nzh517 2002-12-20 11:29:48
我在托盘程序中加了一个菜单,
鼠标右键出现(popup空件)
但,菜单出现后,我不选他,点击别的东西,菜单不能消失。
不象windows 托盘程序出现菜单后,一旦鼠标离开点击别的东西,他会自动消失
请问如何实现!??
...全文
49 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
fengjn 2002-12-20
  • 打赏
  • 举报
回复
win 2000以后就是有这个问题,我也不知道如何解决。换到98下面就好了
MAX·WOODS 2002-12-20
  • 打赏
  • 举报
回复
GetCursorPos(Point);
if IsIconIc(Application.Handle) then SetForegroundWindow(Application.Handle)
else Application.BringToFront;
FPopupMenu.Popup(Point.X,Point.Y);
菜单消失是由其窗口主线程处理的,当你点击托盘图标后,菜单的拥有者也就是菜单的拥有窗口线程就变为后台线程,这时,如果不把窗口切换到前台线程,那么菜单就不会消失!
上面代码要注意的是,不能只用SetForegroundWindow,否则,在窗口非最小化时菜单不会消失!
上面代码在Win2000+Delphi6下测试通过!

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧