from:http://www.slyar.com/blog/tray-menu-exit.html
转自: 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,居然告诉我设计就是这样的,设计个锤子...