У меня есть меню, которое выглядит примерно так:
Когда я открываю определенный диалог, я хочу отключить все меню. Я понимаю, что могу по отдельности отключить каждый пункт меню, используя Update_Command_UIs, но это будет означать добавление обработчиков событий для 100 или более пунктов меню. Меню загружается изначально с CMultiDocTemplate. Есть ли способ сделать это с помощью ресурса ID (IDR_MENU)?
Любая помощь будет оценена.
Спасибо.
В вашем классе мэйнфреймов, m_wndMenuBar.EnableWindow(FALSE);
? Элементы главного меню не будут выделены серым цветом, но их нельзя будет выбрать.
Я использовал ,
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. Это сработало для меня.