在某些条件下如何在MFC中隐藏菜单项?
我对仅将其变灰不感兴趣。

最佳答案

为您的菜单项添加一个更新处理程序(使用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);
}

07-27 14:06