关于模态/非模态对话框不响应菜单的UPDATE_COMMAND_UI消息(对对WM_INITMENUPOPUP消息的处理)
Posted 朝闻道
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于模态/非模态对话框不响应菜单的UPDATE_COMMAND_UI消息(对对WM_INITMENUPOPUP消息的处理)相关的知识,希望对你有一定的参考价值。
对于模态非模态对话框默认是不响应菜单的UPDATE_COMMAND_UI消息的,需要增加对WM_INITMENUPOPUP消息的处理以后,才可以响应UPDATE_COMMAND_UI。
- 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消息的处理)的主要内容,如果未能解决你的问题,请参考以下文章