请问各位大虾,如何改变应用程序的菜单状态,就是禁用某些菜单项,使之变灰不可用。多谢大侠指点了

解决方案 »

  1.   

    可以通过菜单的UPDATE_COMMAND_UI消息进行处理。pCmdUI->Enable(false);就可以禁用该菜单项了。
    其它的办法是获取菜单对象,用EnableMenuItem函数设置
      

  2.   

    CMenu *pMenu = GetMenu();
    pMenu->EnableMenuItem(ID_MENU1, MF_COMMAND|MF_DISABLED);
      

  3.   

    使菜单的某一项变灰…………打开类向导(class  wizard),  
    找到你的菜单某项的ID,如ID_FILE_SAVE,  
    点击选中,在右边一message栏里会看到  
    COMMAND  
    UPDATE_COMMAND_UI  
    选择UPDATE_COMMAND_UI,  
    添加函数,得OnUpdateFileSave()  
    在其中加入:  
       pCmdUI->Enable(false);  
    这样就使其变灰了,  
    同理,改为true就可用了
      

  4.   

    void CDebugWindowView::OnUpdateEditCopy(CCmdUI* pCmdUI) 
    {
    // TODO: Add your command update UI handler code here
    pCmdUI->Enable(FALSE);
    }
      

  5.   

    或者如楼上所说,添
    加菜单项的UPDATE_COMMAND_UI消息,在里面添加pCmdUI->Enable(FALSE);
      

  6.   

    CTRL+W->然后选你要禁用菜单项的UPDATE_COMMAND_UI
    此事件中加pCmdUI->Enable(True);
      

  7.   

    在MFC ClassWizard对话框的Message Maps选项里的Object IDs中选中你要使变灰的菜单ID号,然后在右边的Messages:中选中UPDATE_COMMAND_UI(双击它)便加入一个菜单更新函数:
    void CMyView::OnUpdateMyMenu(CCmdUI* pCmdUI)
    {
    pCmdUI->Enable(TRUE);    // 不为灰
    pCmdUI->Enable(FALSE);   // 为灰(不可用时)
    }