在CMainFrame 初始化时,把
bAutoMenuEnable =FALSE

解决方案 »

  1.   

    在说明白点啊,bAutoMenuEnable 不是成员变量呀
      

  2.   

    你可以看一下MSDN中
    CMenu::EnableMenuItem你就知道了,
    // The code fragment below shows how to disable (and gray out) the 
    // File\New menu item.
    // 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.CMenu* mmenu = GetMenu();
    CMenu* submenu = mmenu->GetSubMenu(0);
    submenu->EnableMenuItem(ID_FILE_NEW, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);
      

  3.   

    m_bAutoMenuEnable 是CFrameWnd
    的成员变量,
    而CMainFrame是从CFrameWnd派生的。
      

  4.   

    我先
    CMainFrame::CMainFrame()
    {
    // TODO: add member initialization code here
    this->m_bAutoMenuEnable = FALSE;
    }
    然后
    void CMainFrame::OnMenuitem32773() 
    {
    // TODO: Add your command handler code here
    CMenu* pMenu = GetMenu();
    int i = pMenu->GetMenuItemCount();
    CMenu* pSubMenu = pMenu->GetSubMenu(4); 
    i = pSubMenu->GetMenuItemCount();
    i = pSubMenu->EnableMenuItem(1,MF_BYPOSITION  ¦  MF_GRAYED  );
    }
    还是不能将自己添加的菜单变灰呀
      

  5.   

    1.在CMainFrame的构造函数里bAutoMenuEnable =FALSE
    2.CMenu* mmenu = GetMenu();
    CMenu* submenu = mmenu->GetSubMenu(0);
    submenu->EnableMenuItem(ID_FILE_NEW, MF_BYCOMMAND ¦ MF_DISABLED ¦ MF_GRAYED);
    3.ok了give me scores
      

  6.   

     MF_BYCOMMAND ¦ MF_DISABLED ¦ MF_GRAYED;你忘记加MF_DISABLED!!
      

  7.   

    怎么给你分呀???我搞好了
    多谢
    就卡在那个m_bAutoMenuEnable变量上了
      

  8.   

    不用加MF_DISABLED
    0.
    增加自己的菜单
    1.CMainFrame::CMainFrame()
    {
    // TODO: add member initialization code here
    m_bAutoMenuEnable  =FALSE;
    }
    2.
    void CMainFrame::OnTest() 
    {
    // TODO: Add your command handler code hereCMenu* mmenu = GetMenu();
    CMenu* submenu = mmenu->GetSubMenu(4);
    submenu->EnableMenuItem(ID_TEST, MF_BYCOMMAND | MF_GRAYED);
    }