我有一个SDI的程序,它的CxxxView类的basic class为CFormView,在这个Form中有一个按钮。有一菜单,为它增加COMMAND消息处理函数,我想在这个处理函里,把那个按钮变成不可用,该怎么做呢?
因为菜单处理函数是在CMainFrame类中的,而那个按钮刚在CxxxView类里面的,我有什么办法可以得到这个按钮并执行它的EnableWindow函数呢?
相反,如果我按了一下按钮,又想把菜单改为不可用,那又应该如何做呢?

解决方案 »

  1.   

    你可以把菜单的消息响应函数放到你的View中要想控制菜单,可以在按钮的消息响应函数中,也可以添加UPDATA_COMMANT_UI
      

  2.   

    可是用ClassWizard根本无法定义菜单的Member Variables呀,请问在按钮的消息响应函数中如何访问菜单呢?
      

  3.   

    最好是添加UPDATA_COMMANT_UI消息响应.
    定义一个变量m_bEnable;CMainFrame::OnUpdateMenu(CCmdUI* pCmdUI)
    {
    pCmdUI->Enable(m_bEnable);
    }在按钮消息响应函数中将 m_bEnable置为false
      

  4.   

    你可以把菜单的消息响应函数放到你的View中菜单刷新:
    CYourView::OnUpdateMenu(CCmdUI* pCmdUI)
    {
          pCmdUI->Enable(m_bEnable);
    }