GetMenuState 関数 (winuser.h)

指定したメニュー項目に関連付けられているメニュー フラグを取得します。 メニュー項目がサブメニューを開いた場合、この関数はサブメニュー内の項目の数も返します。

メモGetMenuState 関数は、GetMenuItemInfo によって置き換えられます。 ただし、 GetMenuItemInfo の拡張機能が不要な場合は、 GetMenuState を引き続き使用できます。
 

構文

UINT GetMenuState(
  [in] HMENU hMenu,
  [in] UINT  uId,
  [in] UINT  uFlags
);

パラメーター

[in] hMenu

種類: HMENU

フラグを取得するメニュー項目を含むメニューへのハンドル。

[in] uId

型: UINT

uFlags パラメーターによって決定される、メニュー フラグを取得するメニュー項目。

[in] uFlags

型: UINT

uId パラメーターの解釈方法を示します。 このパラメーターには、次の値のいずれかを指定できます。

説明
MF_BYCOMMAND
0x00000000L
uId パラメーターがメニュー項目の識別子を指定することを示します。 MF_BYCOMMANDフラグもMF_BYPOSITIONフラグも指定されていない場合、MF_BYCOMMAND フラグは既定値です。
MF_BYPOSITION
0x00000400L
uId パラメーターがメニュー項目の 0 から始まる相対位置を指定することを示します。

戻り値

型: UINT

指定した項目が存在しない場合、戻り値は -1 になります。

メニュー項目がサブメニューを開いた場合、戻り値の下位バイトには項目に関連付けられているメニュー フラグが含まれており、上位バイトには項目によって開かれたサブメニュー内の項目の数が含まれます。

それ以外の場合、戻り値はメニュー フラグのマスク (ビットごとの OR) です。 メニュー項目に関連付けられているメニュー フラグを次に示します。

リターン コード/値 Description
MF_CHECKED
0x00000008L
項目の横にチェックマークが配置されます (ドロップダウン メニュー、サブメニュー、ショートカット メニューの場合のみ)。
MF_DISABLED
0x00000002L
この項目は無効です。
MF_GRAYED
0x00000001L
項目が無効になり、灰色表示されます。
MF_HILITE
0x00000080L
項目が強調表示されています。
MF_MENUBARBREAK
0x00000020L
これは、ドロップダウン メニュー、サブメニュー、ショートカット メニューを除き、 MF_MENUBREAK フラグと同じです。この場合、新しい列は古い列から垂直線で区切ります。
MF_MENUBREAK
0x00000040L
項目は、列を分離せずに、新しい行 (メニュー バーの場合) または新しい列 (ドロップダウン メニュー、サブメニュー、ショートカット メニューの場合) に配置されます。
MF_OWNERDRAW
0x00000100L
アイテムは所有者描画です。
MF_POPUP
0x00000010L
メニュー項目はサブメニューです。
MF_SEPARATOR
0x00000800L
水平分割線があります (ドロップダウン メニュー、サブメニュー、ショートカット メニューの場合のみ)。

解説

MF_ENABLED、MF_STRINGMF_UNCHECKED、またはMF_UNHILITEのフラグ値の項目をテストできます。 ただし、これらの値は 0 に相当するため、式を使用してテストする必要があります。

フラグ フラグをテストする式
MF_ENABLED ! (Flag&(MF_DISABLED | MF_GRAYED))
MF_STRING ! (Flag&(MF_BITMAP | MF_OWNERDRAW))
MF_UNCHECKED ! (Flag&MF_CHECKED)
MF_UNHILITE ! (Flag&HILITE)
 

例については、「 メニューでのチェック ボックスのシミュレート」を参照してください。

要件

   
サポートされている最小のクライアント 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-2 (Windows 10 バージョン 10.0.10240 で導入)

関連項目

概念

GetMenu

GetMenuItemCount

GetMenuItemID

GetMenuItemInfo

メニュー

参照