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

 

对于模态非模态对话框默认是不响应菜单的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);
  }
 }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值