GetMenuState 関数 (winuser.h)
指定したメニュー項目に関連付けられているメニュー フラグを取得します。 メニュー項目がサブメニューを開いた場合、この関数はサブメニュー内の項目の数も返します。
構文
UINT GetMenuState(
[in] HMENU hMenu,
[in] UINT uId,
[in] UINT uFlags
);
パラメーター
[in] hMenu
種類: HMENU
フラグを取得するメニュー項目を含むメニューへのハンドル。
[in] uId
型: UINT
uFlags パラメーターによって決定される、メニュー フラグを取得するメニュー項目。
[in] uFlags
型: UINT
uId パラメーターの解釈方法を示します。 このパラメーターには、次の値のいずれかを指定できます。
戻り値
型: UINT
指定した項目が存在しない場合、戻り値は -1 になります。
メニュー項目がサブメニューを開いた場合、戻り値の下位バイトには項目に関連付けられているメニュー フラグが含まれており、上位バイトには項目によって開かれたサブメニュー内の項目の数が含まれます。
それ以外の場合、戻り値はメニュー フラグのマスク (ビットごとの OR) です。 メニュー項目に関連付けられているメニュー フラグを次に示します。
リターン コード/値 | Description |
---|---|
|
項目の横にチェックマークが配置されます (ドロップダウン メニュー、サブメニュー、ショートカット メニューの場合のみ)。 |
|
この項目は無効です。 |
|
項目が無効になり、灰色表示されます。 |
|
項目が強調表示されています。 |
|
これは、ドロップダウン メニュー、サブメニュー、ショートカット メニューを除き、 MF_MENUBREAK フラグと同じです。この場合、新しい列は古い列から垂直線で区切ります。 |
|
項目は、列を分離せずに、新しい行 (メニュー バーの場合) または新しい列 (ドロップダウン メニュー、サブメニュー、ショートカット メニューの場合) に配置されます。 |
|
アイテムは所有者描画です。 |
|
メニュー項目はサブメニューです。 |
|
水平分割線があります (ドロップダウン メニュー、サブメニュー、ショートカット メニューの場合のみ)。 |
注釈
MF_ENABLED、MF_STRING、MF_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 で導入) |
関連項目
概念
参照