10

MFC で特定の条件下でメニュー項目を非表示にするにはどうすればよいですか?
グレーアウトするだけには興味がありません。

4

2 に答える 2

18

メニュー項目の更新ハンドラーを追加します (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);
}
于 2009-01-05T16:09:26.973 に答える
3

または、単一のメニュー項目を削除する場合は、CMenu:: RemoveMenuを使用します

于 2009-01-05T16:12:30.757 に答える