网上搜,MFC菜单置灰的代码:
CMenu * pMenu = AfxGetMainWnd()->GetMenu(); //获取菜单指针
CMenu *pSubMenu = pMenu->GetSubMenu(4);//获取菜单第4栏弹出子菜单栏的指针
pSubMenu->EnableMenuItem(ID_XX,MF_BYCOMMAND| MF_DISABLED | MF_GRAYED);//把ID_XX项置灰
看起来一点错误都没有,但是运行后ID_XX项还是没有变灰,参照《VC++深入详解》(孙鑫 等编著)第179页,
需要添加:
CMainFrame::CMainFrame()
{
m_bAutoMenuEnable = FALSE;
}
添完以后,再运行,好了~