转自:http://www.slyar.com/blog/tray-menu-exit.html
托盘弹出控制菜单后,单击其他地方或者按ESC键不能使托盘菜单消失,必须选择托盘菜单里的控制选项才能关闭菜单...很纠结的一个问题。
查了好久,终于在MSDN上找到答案,不过这答案让我很想杀了微软的设计人员...
135788:Menus for Notification Icons Do Not Work Correctly
SYMPTOMS:When you display a context menu for a notification icon, clicking anywhere besides the menu or the window that created the menu doesn't cause the menu to disappear.
RESOLUTION:To correct the first behavior, you need to make the current window the foreground window before calling TrackPopupMenu or TrackPopupMenuEx.
修正办法就是将SetForegroundWindow()放在pSubMenu->TrackPopupMenu()前面,这样就使得当前窗口变为前置了。
STATUS:This behavior is by design.//TNND,居然告诉我设计就是这样的,设计个锤子...
本文介绍了一个关于托盘菜单的问题,即显示托盘菜单后点击其他区域或按下ESC键无法关闭菜单的情况。该问题的解决办法是在调用TrackPopupMenu()前使用SetForegroundWindow()确保当前窗口为活动窗口。
1038

被折叠的 条评论
为什么被折叠?



