首先在CMainFrame 的构造函数添加
m_bAutoMenuEnable = false;
//m_bAutoMenuEnable为CFrameWnd的成员
然后就能在需要的地方令其失效
AfxGetApp()->m_pMainWnd->GetMenu()->EnableMenuItem(ID_XXX, MF_GRAYED); //变灰
AfxGetApp()->m_pMainWnd->GetMenu()->EnableMenuItem(ID_XXX, MF_ENABLE); //有效
如果有子菜单,则可以在GetMenu()后调用GetSubMenu()详情件MSDN
转载于:https://www.cnblogs.com/eric_lgf/archive/2009/08/28/1555648.html