关于托盘右键菜单的有关问题
求教:关于托盘右键菜单的问题?
问题是这样的:
在托盘图标中点击右键,弹出了一个自定义菜单,如果这时候又不想操作菜单了,点击一下其他地方,菜单应该消失才对,但是为什么就是不消失呢?
这个右键菜单不消失,导致任务栏中的其他程序都不能点击右键了。
代码如下:
------解决方案--------------------
在你if (lParam == WM_RBUTTONUP)语句中添加SetForegroundWindow();
我以前遇到过类似的问题,通过这解决的。。。可以试一下
------解决方案--------------------
那样要点击你的程序窗口才能消失!!试一下楼上的方法吧
------解决方案--------------------
同意一楼
------解决方案--------------------
SetForegroundWindow()这个是必须的。
------解决方案--------------------
问题是这样的:
在托盘图标中点击右键,弹出了一个自定义菜单,如果这时候又不想操作菜单了,点击一下其他地方,菜单应该消失才对,但是为什么就是不消失呢?
这个右键菜单不消失,导致任务栏中的其他程序都不能点击右键了。
代码如下:
- C/C++ code
void CCRCDlg::OnNotifyIcon(WPARAM wParam, LPARAM lParam) { if ((wParam == IDR_MAINFRAME)) { if (lParam == WM_RBUTTONUP) { CPoint ptCur; GetCursorPos(&ptCur); CMenu popMenu; if(popMenu.CreatePopupMenu()) { BOOL bIsShow = IsWindowVisible(); popMenu.AppendMenu(MF_STRING | bIsShow ? MF_CHECKED : MF_UNCHECKED, IDC_SHOWSHOW, "显示"); popMenu.AppendMenu(MF_STRING | bIsShow ? MF_UNCHECKED : MF_CHECKED, IDC_HIDESHOW, "隐藏"); popMenu.AppendMenu(MF_SEPARATOR); popMenu.AppendMenu(MF_SEPARATOR); popMenu.AppendMenu(MF_STRING, IDOK, "退出"); popMenu.SetDefaultItem(0); popMenu.TrackPopupMenu(TPM_LEFTALIGN,ptCur.x,ptCur.y,this); } popMenu.DestroyMenu(); } } }
------解决方案--------------------
在你if (lParam == WM_RBUTTONUP)语句中添加SetForegroundWindow();
我以前遇到过类似的问题,通过这解决的。。。可以试一下
------解决方案--------------------
那样要点击你的程序窗口才能消失!!试一下楼上的方法吧
------解决方案--------------------
同意一楼
------解决方案--------------------
SetForegroundWindow()这个是必须的。
------解决方案--------------------