禁用主菜单

时间:2014-02-20 09:21:45

标签: c++ visual-c++ menu mfc mdi

我有一个看起来像下面的菜单,

enter image description here

当我打开特定对话框时,我想禁用整个菜单。我意识到我可以通过使用Update_Command_UIs单独禁用每个菜单项,但这意味着为100个或更多菜单项添加事件处理程序。最初使用CMultiDocTemplate加载菜单。有没有办法通过使用ID资源(IDR_MENU)来做到这一点?

任何帮助将不胜感激。 谢谢。

2 个答案:

答案 0 :(得分:2)

在您的大型机课程中,m_wndMenuBar.EnableWindow(FALSE);?主菜单项不会显示为灰色,但它们无法选择。

答案 1 :(得分:2)

我用过,

CMenu* pMenu = AfxGetMainWnd()->GetMenu();
if(pMenu != NULL)
{
    for(UINT i = 0; i < pMenu->GetMenuItemCount (); ++i)
        pMenu->EnableMenuItem(i, MF_BYPOSITION | MF_DISABLED);
}

http://forums.codeguru.com/showthread.php?456136-Can-I-disable-menu-bar中所述。它对我有用。