mfc让菜单动态变灰

首先在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

你可能感兴趣的:(mfc)