CWnd * pMainWnd=theApp.GetMainWnd ();
CMenu * menu=(CMenu *)pMainWnd->GetDlgItem(IDR_MAINFRAME);
    menu->EnableMenuItem (ID_CHANGE_PASSWORD, MF_DISABLED);
运行到第三句出错。(谢谢)

解决方案 »

  1.   

    首先明确一点,CMenu不是从CWnd派生来的,他也不是一个窗口!
    所以,用GetDlgItem()这个函数不对!要想使菜单变灰可以重载菜单项的UPDATE_COMMAND_UI消息,在消息响应函数中用
    pCmdUI->Enable(false);来解决!
      

  2.   

    CMenu menu;
    CMenu* pSubMenu;menu.LoadMenu(IDR_MAINFRAME);
    pSubMenu = menu.GetSubMenu(0);
    pSubMenu.EnableMenuItem(ID_CHANGE_PASSWORD, MF_BYCOMMAND | MF_DISABLED);