VC6解决托盘菜单不消失
生活随笔
收集整理的这篇文章主要介绍了
VC6解决托盘菜单不消失
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
CMenu menu;
menu.LoadMenu(IDR_MNU_TRAY); // 2
CMenu* pMenu=menu.GetSubMenu(0);
CPoint point;
GetCursorPos(&point);
SetForegroundWindow(); //解决托盘菜单不消失
pMenu->TrackPopupMenu(TPM_LEFTALIGN,point.x,point.y,this);
PostMessage(WM_NULL,0,0); //解决托盘菜单不消失
SDK里写得很清楚地
To display a context menu for a notification icon, the current window must be the foreground window before the application calls TrackPopupMenu or TrackPopupMenuEx. Otherwise, the menu will not disappear when the user clicks outside of the menu or the window that created the menu (if it is visible). However, when the current window is the foreground window, the second time this menu is displayed, it displays and then immediately disappears. To correct this, you must force a task switch to the application that called TrackPopupMenu at some time in the near future. This is done by posting a benign message to the window or thread, as shown in the following code sample:
Hide Example
SetForegroundWindow(hDlg);
// Display the menu
TrackPopupMenu( hSubMenu,
TPM_RIGHTBUTTON,
pt.x,
pt.y,
0,
hDlg,
NULL);
PostMessage(hDlg, WM_NULL, 0, 0);
SDK里写得很清楚地
To display a context menu for a notification icon, the current window must be the foreground window before the application calls TrackPopupMenu or TrackPopupMenuEx. Otherwise, the menu will not disappear when the user clicks outside of the menu or the window that created the menu (if it is visible). However, when the current window is the foreground window, the second time this menu is displayed, it displays and then immediately disappears. To correct this, you must force a task switch to the application that called TrackPopupMenu at some time in the near future. This is done by posting a benign message to the window or thread, as shown in the following code sample:
Hide Example
SetForegroundWindow(hDlg);
// Display the menu
TrackPopupMenu( hSubMenu,
TPM_RIGHTBUTTON,
pt.x,
pt.y,
0,
hDlg,
NULL);
PostMessage(hDlg, WM_NULL, 0, 0);
总结
以上是生活随笔为你收集整理的VC6解决托盘菜单不消失的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 前端必读:浏览器内部工作原理
- 下一篇: TEA加密算法的C/C++实现