Скрытие элемента меню в MFC

Как скрыть пункт меню при определенных условиях в MFC?
Меня не интересует только поседение.

2 ответов


добавьте обработчик обновлений для пункта меню (с помощью ON_UPDATE_COMMAND_UI).

эта строка должна появиться на карте сообщений:

  ON_UPDATE_COMMAND_UI(ID_MYMENUITEM, OnUpdateMyMenuItem)

в обработчике, используйте этот код:

void CMainFrame::OnUpdateMyMenuItem(CCmdUI *pCmdUI)
{
  if (pCmdUI->m_pMenu!=NULL)
    pCmdUI->m_pMenu->DeleteMenu(pCmdUI->m_nID, MF_BYCOMMAND);
}

или если вы удаляете один элемент меню CMenu::RemoveMenu