您的位置:首页 > 产品设计 > UI/UE

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

2010-04-21 22:42 435 查看
对于模态非模态对话框默认是不响应菜单的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);
  }
 } 
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: