質問

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);
}

他のヒント

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top