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

怎么关闭TrackPopupMenuEx弹出的菜单

2014-06-13 
如何关闭TrackPopupMenuEx弹出的菜单我使用TrackPopupMenuEx函数弹出一个右键菜单。但是这个菜单如果不去点

如何关闭TrackPopupMenuEx弹出的菜单
我使用TrackPopupMenuEx函数弹出一个右键菜单。
但是这个菜单如果不去点击,就会一直显示在界面上。
如何使用代码关闭这个菜单呢:
例:
HMENU hPopMenu = TrackPopupMenuEx(...)


[解决办法]
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). 

调用TrackPopupMenuEx之前先调用SetForegroundWindow把主窗口前置.


[解决办法]

// 加上这一句,点其它的地方,托盘菜单才会消失
::SetForegroundWindow( m_tnd.hWnd );

// 弹出菜单 
CPoint pos; 
GetCursorPos( &pos ); 
CWnd* pWnd = AfxGetMainWnd();
menu.TrackPopupMenu( TPM_RIGHTALIGN 
[解决办法]
 TPM_BOTTOMALIGN 
[解决办法]
 TPM_LEFTBUTTON, pos.x, pos.y, AfxGetMainWnd(), NULL );

menu.DestroyMenu();

热点排行