EnableMenuItem 関数 (winuser.h)

指定したメニュー項目を有効、無効、または灰色にします。

構文

BOOL EnableMenuItem(
  [in] HMENU hMenu,
  [in] UINT  uIDEnableItem,
  [in] UINT  uEnable
);

パラメーター

[in] hMenu

種類: HMENU

メニューへのハンドル。

[in] uIDEnableItem

型: UINT

uEnable パラメーターによって決定される、有効、無効、または灰色で表示されるメニュー項目。 このパラメーターは、メニュー バー、メニュー、またはサブメニュー内の項目を指定します。

[in] uEnable

型: UINT

uIDEnableItem パラメーターの解釈を制御し、メニュー項目を有効、無効、または灰色にするかどうかを指定します。 このパラメーターは、次の値の組み合わせである必要があります。

意味
MF_BYCOMMAND
0x000000000L
uIDEnableItem がメニュー項目の識別子を指定することを示します。 MF_BYCOMMANDフラグもMF_BYPOSITIONフラグも指定されていない場合は、MF_BYCOMMANDフラグがデフォルトフラグになります。
MF_BYPOSITION
0x00000400L
uIDEnableItem がメニュー項目の 0 から始まる相対位置を指定することを示します。
MF_DISABLED
0x00000002L
メニュー項目が無効になっているが灰色で表示されていないため、選択できないことを示します。
MF_ENABLED
0x000000000L
メニュー項目が有効になり、選択できるように灰色の状態から復元されることを示します。
MF_GRAYED
0x00000001L
メニュー項目が無効になり、灰色表示され、選択できないことを示します。

戻り値

種類: BOOL

戻り値は、メニュー項目の以前の状態を指定します ( MF_DISABLEDMF_ENABLEDまたはMF_GRAYEDのいずれかです)。 メニュー項目が存在しない場合、戻り値は -1 になります。

注釈

適切なメニュー ハンドルを指定するには、アプリケーションで MF_BYPOSITION フラグを使用する必要があります。 メニュー バーのメニュー ハンドルを指定すると、最上位レベルのメニュー項目 (メニュー バー内の項目) が影響を受けます。 ドロップダウン メニューまたはサブメニュー内の項目の状態を位置別に設定するには、アプリケーションでドロップダウン メニューまたはサブメニューへのハンドルを指定する必要があります。

アプリケーションが MF_BYCOMMAND フラグを指定すると、システムは、指定されたメニュー ハンドルによって識別されるメニューでサブメニューを開くすべての項目をチェックします。 したがって、重複するメニュー項目が存在しない限り、メニュー バーにメニュー ハンドルを指定するだけで十分です。

InsertMenuInsertMenuItemLoadMenuIndirectModifyMenuおよび SetMenuItemInfo 関数は、メニュー項目の状態 (有効、無効、または灰色) を設定することもできます。

ウィンドウ メニューを変更しても、メニュー バーはすぐには更新されません。 更新を強制するには、 DrawMenuBar を呼び出します。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー winuser.h (Windows.h を含む)
Library User32.lib
[DLL] User32.dll
API セット ext-ms-win-ntuser-menu-l1-1-0 (Windows 8で導入)

関連項目

概念

DrawMenuBar

GetMenuItemID

InsertMenu

InsertMenuItem

LoadMenuIndirect

メニュー

ModifyMenu

リファレンス

SetMenuItemInfo

WM_SYSCOMMAND