首页 > 代码库 > 关于模态/非模态对话框不响应菜单的UPDATE_COMMAND_UI消息(对对WM_INITMENUPOPUP消息的处理)
关于模态/非模态对话框不响应菜单的UPDATE_COMMAND_UI消息(对对WM_INITMENUPOPUP消息的处理)
对于模态非模态对话框默认是不响应菜单的UPDATE_COMMAND_UI消息的,需要增加对WM_INITMENUPOPUP消息的处理以后,才可以响应UPDATE_COMMAND_UI。
[cpp] view plain copy
- void CXXXDlg::OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu)
- {
- CDialog::OnInitMenuPopup(pPopupMenu, nIndex, bSysMenu);
- // TODO: Add your message handler code here
- if(!bSysMenu && pPopupMenu)
- {
- CCmdUI cmdUI;
- cmdUI.m_pOther = NULL;
- cmdUI.m_pMenu = pPopupMenu;
- cmdUI.m_pSubMenu = NULL;
- UINT count = pPopupMenu->GetMenuItemCount();
- cmdUI.m_nIndexMax = count;
- for(UINT i=0; i<count; i++)
- {
- UINT nID = pPopupMenu->GetMenuItemID(i);
- if(-1 == nID || 0 == nID)
- {
- continue;
- }
- cmdUI.m_nID = nID;
- cmdUI.m_nIndex = i;
- cmdUI.DoUpdate(this, FALSE);
- }
- }
- }
http://blog.csdn.net/visualeleven/article/details/5513648
关于模态/非模态对话框不响应菜单的UPDATE_COMMAND_UI消息(对对WM_INITMENUPOPUP消息的处理)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。