首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

关于托盘右键菜单的有关问题

2012-05-20 
求教:关于托盘右键菜单的问题?问题是这样的:在托盘图标中点击右键,弹出了一个自定义菜单,如果这时候又不想

求教:关于托盘右键菜单的问题?
问题是这样的:
在托盘图标中点击右键,弹出了一个自定义菜单,如果这时候又不想操作菜单了,点击一下其他地方,菜单应该消失才对,但是为什么就是不消失呢?

这个右键菜单不消失,导致任务栏中的其他程序都不能点击右键了。

代码如下:

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()这个是必须的。
[解决办法]
探讨

引用:
SetForegroundWindow()这个是必须的。

解释一下原因,好吗?十分感谢!

热点排行