在TrackPopupMenu函数前面添加SetForegroundWindow();即可解决.
示例代码:
POINT point;
HMENU hMenu, hSubMenu;
GetCursorPos(&point);
hMenu = LoadMenu(::AfxGetInstanceHandle(), MAKEINTRESOURCE(IDR_MENU1));
hSubMenu = GetSubMenu(hMenu, 0);
SetMenuDefaultItem(hSubMenu, -1, FALSE);
SetForegroundWindow(); // 解决托盘图标菜单弹出后,点击其它地方,菜单不消失的问题
TrackPopupMenu(hSubMenu, TPM_BOTTOMALIGN, point.x, point.y, 0, m_hWnd, NULL);
PostMessage(WM_NULL, 0, 0);
DestroyMenu(hMenu);
本文为“技术点滴”的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。