zoukankan      html  css  js  c++  java
  • 关于模态/非模态对话框不响应菜单的UPDATE_COMMAND_UI消息(对对WM_INITMENUPOPUP消息的处理)

    对于模态非模态对话框默认是不响应菜单的UPDATE_COMMAND_UI消息的,需要增加对WM_INITMENUPOPUP消息的处理以后,才可以响应UPDATE_COMMAND_UI。

    [cpp] view plain copy
     
    1. void CXXXDlg::OnInitMenuPopup(CMenu* pPopupMenu, UINT nIndex, BOOL bSysMenu)  
    2. {  
    3.  CDialog::OnInitMenuPopup(pPopupMenu, nIndex, bSysMenu);  
    4.   
    5. // TODO: Add your message handler code here  
    6.   
    7.  if(!bSysMenu && pPopupMenu)  
    8.  {  
    9.   CCmdUI cmdUI;  
    10.   cmdUI.m_pOther = NULL;  
    11.   cmdUI.m_pMenu = pPopupMenu;  
    12.   cmdUI.m_pSubMenu = NULL;  
    13.   
    14.   UINT count = pPopupMenu->GetMenuItemCount();  
    15.   cmdUI.m_nIndexMax = count;  
    16.   for(UINT i=0; i<count; i++)  
    17.   {  
    18.    UINT nID = pPopupMenu->GetMenuItemID(i);  
    19.    if(-1 == nID || 0 == nID)  
    20.    {  
    21.     continue;  
    22.    }  
    23.    cmdUI.m_nID = nID;  
    24.    cmdUI.m_nIndex = i;  
    25.    cmdUI.DoUpdate(this, FALSE);  
    26.   }  
    27.  }   
    28. }   
     
    http://blog.csdn.net/visualeleven/article/details/5513648
     
  • 相关阅读:
    405
    406
    4-1
    3-11
    3-10
    3-9
    3-8
    3-7
    3-5
    3-4
  • 原文地址:https://www.cnblogs.com/findumars/p/6002464.html
Copyright © 2011-2022 走看看