托盘菜单不能消失 我在托盘程序中加了一个菜单,鼠标右键出现(popup空件)但,菜单出现后,我不选他,点击别的东西,菜单不能消失。不象windows 托盘程序出现菜单后,一旦鼠标离开点击别的东西,他会自动消失请问如何实现!?? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 win 2000以后就是有这个问题,我也不知道如何解决。换到98下面就好了 GetCursorPos(Point);if IsIconIc(Application.Handle) then SetForegroundWindow(Application.Handle)else Application.BringToFront;FPopupMenu.Popup(Point.X,Point.Y);菜单消失是由其窗口主线程处理的,当你点击托盘图标后,菜单的拥有者也就是菜单的拥有窗口线程就变为后台线程,这时,如果不把窗口切换到前台线程,那么菜单就不会消失!上面代码要注意的是,不能只用SetForegroundWindow,否则,在窗口非最小化时菜单不会消失!上面代码在Win2000+Delphi6下测试通过! 怎样动态创建Treeview的结点和子结点 如何读取LWP格式的文件 与QQ通讯的问题 如何获得webbroswser控件上显示的flash? 关于三层结构中的数据同步 我使用了别人开发的控件,怎样实现delphi的静态编译? 简繁体问题 WIN98和WIN95客户机怎么联到NT4.0或WIN2000服务器上的共享目录 如何通过PopupMenu动态创建TreeView? 用DBMemo怎么读取平面文件cds 里的数据呢?? 在将数据导入到Excel后,如果数字太长,将会转为科学计数法,如何解决 能不能把当前记录作为报表打印出来?(用fastreport)
if IsIconIc(Application.Handle) then SetForegroundWindow(Application.Handle)
else Application.BringToFront;
FPopupMenu.Popup(Point.X,Point.Y);
菜单消失是由其窗口主线程处理的,当你点击托盘图标后,菜单的拥有者也就是菜单的拥有窗口线程就变为后台线程,这时,如果不把窗口切换到前台线程,那么菜单就不会消失!
上面代码要注意的是,不能只用SetForegroundWindow,否则,在窗口非最小化时菜单不会消失!
上面代码在Win2000+Delphi6下测试通过!