CMenu::EnableMenuItem(....)
函数是不是只能让弹出菜单pop-up menu 变灰而不能让普通的菜单项变灰啊?

解决方案 »

  1.   

    NOTE: m_bAutoMenuEnable is set to FALSE in the constructor of 
    // CMainFrame so no ON_UPDATE_COMMAND_UI or ON_COMMAND handlers are 
    // needed, and CMenu::EnableMenuItem() will work as expected.
      

  2.   

    怎么我下面这段代码让弹出菜单变灰了,而普通的菜单没有变啊?  CMenu *pMenu,*pSubMenu;
    pMenu=GetMenu();
    pSubMenu=pMenu->GetSubMenu(0);
    static BOOL bEnable=1;
    int pos=pSubMenu->GetMenuItemCount();
    pSubMenu->EnableMenuItem(ID_MENU_4,MF_BYCOMMAND|MF_DISABLED|MF_GRAYED);
    TRACE("MenuItem is %d",pos);
    if(bEnable)
    {
    for(;pos>=0;pos--)
    pSubMenu->EnableMenuItem(pos,MF_BYPOSITION|MF_GRAYED|MF_DISABLED);
    bEnable=0;
    TRACE("Grayed");
    }
    else
    {
    for(;pos>=0;pos--)
    pSubMenu->EnableMenuItem(pos,MF_BYPOSITION|MF_ENABLED|MF_DISABLED);
    bEnable=1;
    // TRACE("Enabled");
    }