在对话框的属性添加了菜单但是相应不到相关的OnUpdate...消息,怎样才可以相应到此消息啊?谢谢

解决方案 »

  1.   

    在对话框的PretranslateMessage中处理WM_COMMAND消息,wparam是菜单ID
      

  2.   

    看看类还找得到不
    删除Clw文件,再重新编译一下
      

  3.   

    就是,难道对话框不是你自己编写的,是用的MessageBox()可是那个也没菜单呀@_@
      

  4.   

    就是不说在说 sodangerous(机器人) 
    而是说 laiyiling(最熟悉的陌生人) 
    hh~~
      

  5.   

    http://www.codeguru.com/Cpp/W-D/dislog/commandui/article.php/c1919/
      

  6.   

    1 在对话框的头文件的
    // Generated message map functions
    //{{AFX_MSG(CTestDialog)
             //}}AFX_MSG
    之间加上 afx_msg void OnUpdateMenuRegsvr(CCmdUI* pCmdUI);(函数名自定)2 在cpp文件的
    BEGIN_MESSAGE_MAP(CTestDialog, CDialog)
    //{{AFX_MSG_MAP(CTestDialog)

    //}}AFX_MSG_MAP
    END_MESSAGE_MAP()
    之间加上 ON_UPDATE_COMMAND_UI(菜单项ID, OnUpdateMenuRegsvr)3 在cpp文件中定义函数
    void CTestDialog::OnUpdateMenuRegsvr(CCmdUI* pCmdUI) 
    {
    // TODO: Add your command update UI handler code here

    }
      

  7.   

    好像在对话框里pCmdUI->SetCheck(m_bCheck)没反应,可以通过下面得方法:
    在构造函数里:
    m_uState = MF_CHECKED ;void CAboutDlg::OnMenuTest()
    {
         CMenu *pMenu = GetMenu() ;
         pMenu->CheckMenuItem(ID_MENU_TEST , m_uState) ;
         m_uState = (m_uState == MF_UNCHECKED) ? MF_CHECKED : MF_UNCHECKED ;}
    我不明白为什么用UPDATE_COMMAND_UI映射不行?事实上它接收到了更新消息,
    但调用pCmdUI->SetCheck(m_bCheck) ;就是没有反映。
    在文档里却是可以的。
      

  8.   

    对话框里的菜单这个UPDATE_COMMAND_UI映射是没有反映的。
    你得用GetMenu()->EnableMenuItem(nID,MF_GRAYED);来实现菜单的禁用