次の方法で共有


CMenu::EnableMenuItem

に設定すると、有効またはメニュー項目を淡色表示にします。

UINT EnableMenuItem(
   UINT nIDEnableItem,
   UINT nEnable 
);

パラメーター

  • nIDEnableItem
    nEnableによって決定される、有効にするメニュー項目を指定します。このパラメーターは、ポップアップ メニュー項目、または標準メニュー項目を指定できます。

  • nEnable
    実行するアクションを指定します。これは MF_DISABLEDMF_ENABLED、または MF_BYCOMMAND または MF_BYPOSITIONとの MF_GRAYEDの組み合わせである場合もあります。これらの値は、OR 演算子を使用してビットごとにまとめることができます。これらの値は次のとおりです。:

    • MF_BYCOMMAND は、パラメーターが既存のメニュー項目のコマンド ID を与えることを指定します。既定値です。

    • MF_BYPOSITION は、パラメーターが既存のメニュー項目の位置を与えることを指定します。最初の項目が 0 の位置にあります。

    • MF_DISABLED は、選択できない無効にしますが、淡色表示しないようにメニュー項目が。

    • MF_ENABLED は復元淡色表示の状態から選択できるようにメニュー項目を有効にします。

    • MF_GRAYED は、選択できない無効にし、淡色表示するようにメニュー項目が。

戻り値

前の状態 (MF_DISABLEDMF_ENABLED、または MF_GRAYED) または–無効な場合は 1。

解説

CreateMenuInsertMenuModifyMenuLoadMenuIndirect のメンバー関数は、メニュー項目の状態 (有効にするか無効にするか、または淡色表示される) 設定できます。

MF_BYPOSITION の値を使用して、正しい CMenuを使用するアプリケーションを要求します。メニュー バーの CMenu が使用され、トップレベルのメニュー項目 (メニュー バーの項目) が影響を受けます。位置によってポップアップの項目または入れ子になったポップアップ メニューの状態を設定するには、アプリケーションがポップアップ メニューに CMenu を指定する必要があります。

アプリケーションが MF_BYCOMMAND のフラグを指定すると、Windows は CMenu内の下位にあるすべてのポップアップ メニューに項目をチェック アウトします; したがって、重複したメニュー項目がない場合、メニュー バーの CMenu を使用して十分です。

使用例

// The code fragment below shows how to disable (and gray out) the 
// File\New menu item.
// NOTE: m_bAutoMenuEnable is set to FALSE in the constructor of 
// CMainFrame so no ON_UPDATE_COMMAND_UI or ON_COMMAND handlers are 
// needed, and CMenu::EnableMenuItem() will work as expected.

CMenu* mmenu = GetMenu();
CMenu* submenu = mmenu->GetSubMenu(0);
submenu->EnableMenuItem(ID_FILE_NEW, MF_BYCOMMAND | MF_DISABLED | MF_GRAYED);

必要条件

ヘッダー: afxwin.h

参照

関連項目

CMenu クラス

階層図

CMenu::GetMenuState

EnableMenuItem