CMenu *menu=GetMenu();
menu->EnableMenuItem(ID_CLEAN,MF_BYCOMMAND|MF_DISABLED|MF_GRAYED);这是我操作菜单的代码,可我发现,运行完代码后,菜单并不会马上变成灰色,需要点一下才变色。请问:有何解决办法?

解决方案 »

  1.   

    你的菜单里面的字菜单都有一个ID号,你可以到相应的类里面为某一个菜单的ID号添加一个消息相应函数名字叫做UPDATE_COMMAND_UI。这个函数会给你传一个CCmdUI的指针,然后你调用它的成员函数SetCheck就可以了。
      

  2.   

    呵呵不知道你用在哪里了,不过我这里却有一个好办法,一般的VC缺省的上面的第三条(第一条为FILE EDIT VIEW什么的,第二行为打开和保存之类的,第三行就是我说的,有C**VIEW为第一个下面框,你可以选择你需要的类,然后是第二个下拉框,选的是你要变灰的菜单的ID号,第三个下拉框是你要做的可选UPDATE_COMMAND_UI可自动出现你要加的消息的对话框,点击OK就可以了,你可以在里面做菜单变灰动作即
    void C**View::OnUpdate****(CCmdUI* pCmdUI) 
    {
     pCmdUI->Enable(FALSE);
    }
    OK! **为你的类名!