关于模态/非模态对话框不响应菜单的UPDATE_COMMAND_UI消息

来源:互联网 发布:linux查看光纤卡流量 编辑:程序博客网 时间:2024/05/16 19:21

对于模态非模态对话框默认是不响应菜单的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
参考:https://support.microsoft.com/en-us/help/242577/you-cannot-change-the-state-of-a-menu-item-from-its-command-user-inter

阅读全文
0 0
原创粉丝点击