如何方便的控制菜单中某项的可用还是不可用,或者被选中,或者变灰的相关问题,但又不给该菜单资源创建类,也不存在菜单对象。
比如说,添加了一个菜单资源,也为个选项映射了函数(其他类的)。在这些函数中,如何控制菜单

解决方案 »

  1.   

    CMenu类的EnableMenuItem函数可以实现
    EnableMenuItem( UINT nIDEnableItem, UINT nEnable );
    nEnable =MF_DISABLED, MF_ENABLED, or MF_GRAYED即失效,可用,变灰
      

  2.   

    如果直接用这个函数,则提示缺少参数。
    如此:
    CMenu menu;
    menu.LoadMenu(IDR_MENU);
    menu.EnableMenuItem(ID_MENUITEM_MESSAGE,MF_GRAYED);
    则编译能通过,但无效
      

  3.   

    CMenu *menu=GetMenu();
    CMenu *pSubMenu=menu->GetSubMenu(0);//改为你的紫菜单项
    pSubMenu->EnableMenuItem(IDM_MENU1,MF_GRAYED); //改为你的ID
      

  4.   

    整个过程中。我并没有定义菜单对象,仅仅是使菜单与对话框关联。
    GetSubMenu()的参数是什么
      

  5.   

    GetSubMenu的参数是子菜单的index,GetMenu()得到的是主菜单的指针