MENUITEMINFOA 構造体 (winuser.h)

メニュー項目に関する情報を格納します。

構文

typedef struct tagMENUITEMINFOA {
  UINT      cbSize;
  UINT      fMask;
  UINT      fType;
  UINT      fState;
  UINT      wID;
  HMENU     hSubMenu;
  HBITMAP   hbmpChecked;
  HBITMAP   hbmpUnchecked;
  ULONG_PTR dwItemData;
  LPSTR     dwTypeData;
  UINT      cch;
  HBITMAP   hbmpItem;
} MENUITEMINFOA, *LPMENUITEMINFOA;

メンバー

cbSize

型: UINT

この構造体のサイズ (バイト単位)。 呼び出し元は、このメンバーを に設定する sizeof(MENUITEMINFO)必要があります。

fMask

型: UINT

取得または設定するメンバーを示します。 このメンバーには、次の値の 1 つ以上を指定できます。

意味
MIIM_BITMAP
0x00000080
hbmpItem メンバーを取得または設定します。
MIIM_CHECKMARKS
0x00000008
hbmpChecked メンバーと hbmpUnchecked メンバーを取得または設定します。
MIIM_DATA
0x00000020
dwItemData メンバーを取得または設定します。
MIIM_FTYPE
0x00000100
fType メンバーを取得または設定します。
MIIM_ID
0x00000002
wID メンバーを取得または設定します。
MIIM_STATE
0x00000001
fState メンバーを取得または設定します。
MIIM_STRING
0x00000040
dwTypeData メンバーを取得または設定します。
MIIM_SUBMENU
0x00000004
hSubMenu メンバーを取得または設定します。
MIIM_TYPE
0x00000010
fType メンバーと dwTypeData メンバーを取得または設定します。

MIIM_TYPE は、 MIIM_BITMAPMIIM_FTYPEおよびMIIM_STRINGに置き換えられます。

fType

型: UINT

メニュー項目の種類。 このメンバーには、次の値の 1 つ以上を指定できます。

MFT_BITMAPMFT_SEPARATORおよびMFT_STRINGの値を相互に組み合わせることはできません。 fMaskMIIM_TYPE に設定して fType を使用します。

fType は、 fMask の値が MIIM_FTYPE の場合にのみ使用されます。

意味
MFT_BITMAP
0x00000004L
ビットマップを使用してメニュー項目を表示します。 dwTypeData メンバーの下位ワードはビットマップ ハンドルであり、cch メンバーは無視されます。

MFT_BITMAP、MIIM_BITMAPhbmpItem に置き換えられます。

MFT_MENUBARBREAK
0x00000020L
メニュー項目を新しい行 (メニュー バーの場合) または新しい列 (ドロップダウン メニュー、サブメニュー、またはショートカット メニューの場合) にPlacesします。 ドロップダウン メニュー、サブメニュー、またはショートカット メニューの場合、新しい列と古い列は垂直線で区切られます。
MFT_MENUBREAK
0x00000040L
メニュー項目を新しい行 (メニュー バーの場合) または新しい列 (ドロップダウン メニュー、サブメニュー、またはショートカット メニューの場合) にPlacesします。 ドロップダウン メニュー、サブメニュー、またはショートカット メニューの場合、列は垂直線で区切られません。
MFT_OWNERDRAW
0x00000100L
メニューを所有するウィンドウにメニュー項目を描画する責任を割り当てます。 ウィンドウは、メニューが初めて表示される前に WM_MEASUREITEM メッセージを受け取り、メニュー項目の外観を更新する必要がある場合は常に WM_DRAWITEM メッセージを受け取ります。 この値を指定すると、 dwTypeData メンバーにはアプリケーション定義の値が含まれます。
MFT_RADIOCHECK
0x00000200L
hbmpChecked メンバーが NULL の場合は、チェック マークではなくラジオ ボタン マークを使用して、選択したメニュー項目を表示します。
MFT_RIGHTJUSTIFY
0x00004000L
メニュー項目と後続の項目を右揃えします。 この値は、メニュー項目がメニュー バーにある場合にのみ有効です。
MFT_RIGHTORDER
0x00002000L
メニューが右から左にカスケードするように指定します (既定値は左から右)。 これは、アラビア語やヘブライ語などの右から左への言語をサポートするために使用されます。
MFT_SEPARATOR
0x00000800L
メニュー項目が区切り記号であることを指定します。 メニュー項目の区切り記号が水平分割線として表示されます。 dwTypeData メンバーと cch メンバーは無視されます。 この値は、ドロップダウン メニュー、サブメニュー、またはショートカット メニューでのみ有効です。
MFT_STRING
0x000000000L
テキスト文字列を使用してメニュー項目を表示します。 dwTypeData メンバーは null で終わる文字列へのポインターであり、cch メンバーは文字列の長さです。

MFT_STRINGMIIM_STRING に置き換えられます。

fState

型: UINT

メニュー項目の状態。 このメンバーには、これらの値の 1 つ以上を指定できます。 fState を使用するには、 fMaskMIIM_STATE に設定 します

意味
MFS_CHECKED
0x00000008L
メニュー項目を確認します。 選択したメニュー項目の詳細については、 hbmpChecked メンバーを参照してください。
MFS_DEFAULT
0x00001000L
メニュー項目が既定であることを指定します。 メニューには、太字で表示される既定のメニュー項目を 1 つだけ含めることができます。
MFS_DISABLED
0x00000003L
メニュー項目を無効にし、選択できないようにグレー表示します。 これは 、MFS_GRAYEDと同じです。
MFS_ENABLED
0x000000000L
メニュー項目を有効にして、選択できるようにします。 これが既定の状態です。
MFS_GRAYED
0x00000003L
メニュー項目を無効にし、選択できないようにグレー表示します。 これは 、MFS_DISABLEDと同じです。
MFS_HILITE
0x00000080L
メニュー項目を強調表示します。
MFS_UNCHECKED
0x000000000L
メニュー項目をオフにします。 メニュー項目のクリアの詳細については、 hbmpChecked メンバーを参照してください。
MFS_UNHILITE
0x000000000L
メニュー項目から強調表示を削除します。 これが既定の状態です。

wID

型: UINT

メニュー項目を識別するアプリケーション定義の値。 wID を使用するには、fMaskMIIM_ID に設定します。

hSubMenu

種類: HMENU

メニュー項目に関連付けられているドロップダウン メニューまたはサブメニューへのハンドル。 メニュー項目がドロップダウン メニューまたはサブメニューを開く項目でない場合、このメンバーは NULL になりますhSubMenu を使用するには、fMaskMIIM_SUBMENU に設定します。

hbmpChecked

種類: HBITMAP

項目が選択されている場合に、項目の横に表示するビットマップへのハンドル。 このメンバーが NULL の場合は、既定のビットマップが使用されます。 MFT_RADIOCHECK型の値が指定されている場合、既定のビットマップは箇条書きになります。 それ以外の場合は、チェックマークです。 hbmpChecked を使用するには、fMaskMIIM_CHECKMARKS に設定します。

hbmpUnchecked

種類: HBITMAP

項目の横に表示するビットマップへのハンドル (選択されていない場合)。 このメンバーが NULL の場合、ビットマップは使用されません。 hbmpUnchecked を使用するには、fMaskMIIM_CHECKMARKS に設定します。

dwItemData

種類: ULONG_PTR

メニュー項目に関連付けられているアプリケーション定義の値。 dwItemData を使用するには、fMaskMIIM_DATA に設定します。

dwTypeData

種類: LPTSTR

メニュー項目の内容。 このメンバーの意味は fType の値によって異なり、 MIIM_TYPE フラグが fMask メンバーに設定されている場合にのみ使用されます。

MFT_STRING型のメニュー項目を取得するには、MENUITEMINFOdwTypeData メンバーを NULL に設定してから GetMenuItemInfo を呼び出して、文字列のサイズを検索します。 cch+1 の値は、必要なサイズです。 次に、このサイズのバッファーを割り当て、 dwTypeData 内のバッファーへのポインターを配置して cch をインクリメントし、 GetMenuItemInfo をもう一度呼び出してバッファーに文字列を入力します。 取得したメニュー項目が他の型の場合、 GetMenuItemInfodwTypeData メンバーを 、fType メンバーによって指定された型の値に設定します。

SetMenuItemInfo 関数で を使用する場合、このメンバーには、fType メンバーによって型が指定された値が含まれている必要があります。

dwTypeData は、fMask メンバーでMIIM_STRING フラグが設定されている場合にのみ使用されます

cch

型: UINT

MFT_STRINGの種類のメニュー項目に関する情報を受信したときの、メニュー項目のテキストの長さ (文字単位)。 ただし、 cch は、 MIIM_TYPE フラグが fMask メンバーで設定され、それ以外の場合は 0 の場合にのみ使用されます。 また、メニュー項目の内容が SetMenuItemInfo を呼び出して設定されている場合、cch は無視されます。

GetMenuItemInfo を呼び出す前に、アプリケーションは、dwTypeData メンバーが指すバッファーの長さに cch を設定する必要があることに注意してください。 取得したメニュー項目が (fType メンバーによって示されているように) MFT_STRING型である場合、GetMenuItemInfocch をメニュー項目のテキストの長さに変更します。 取得したメニュー項目が他の種類の場合、 GetMenuItemInfocch フィールドを 0 に設定します。

cch メンバーは、fMask メンバーで MIIM_STRING フラグが設定されている場合に使用されます。

hbmpItem

種類: HBITMAP

表示されるビットマップへのハンドル。または、次の表のいずれかの値を指定できます。 fMask メンバーでMIIM_BITMAP フラグが設定されている場合に使用されます。

意味
HBMMENU_CALLBACK
((HBITMAP) -1)
メニューを所有するウィンドウによって描画されるビットマップ。 アプリケーションは、 WM_MEASUREITEM メッセージとWM_DRAWITEM メッセージを処理 する 必要があります。
HBMMENU_MBAR_CLOSE
((HBITMAP) 5)
メニュー バーの [閉じる] ボタン。
HBMMENU_MBAR_CLOSE_D
((HBITMAP) 6)
メニュー バーの [閉じる] ボタンを無効にしました。
HBMMENU_MBAR_MINIMIZE
((HBITMAP) 3)
メニュー バーの [最小化] ボタン。
HBMMENU_MBAR_MINIMIZE_D
((HBITMAP) 7)
メニュー バーの最小化ボタンを無効にしました。
HBMMENU_MBAR_RESTORE
((HBITMAP) 2)
メニュー バーの [復元] ボタン。
HBMMENU_POPUP_CLOSE
((HBITMAP) 8)
サブメニューの [閉じる] ボタン。
HBMMENU_POPUP_MAXIMIZE
((HBITMAP) 10)
サブメニューの最大化ボタン。
HBMMENU_POPUP_MINIMIZE
((HBITMAP) 11)
サブメニューの [最小化] ボタン。
HBMMENU_POPUP_RESTORE
((HBITMAP) 9)
サブメニューの [復元] ボタン。
HBMMENU_SYSTEM
((HBITMAP) 1)
dwItemData で指定されたウィンドウの Windows アイコンまたはアイコン。

注釈

MENUITEMINFO 構造体は、GetMenuItemInfoInsertMenuItemおよび SetMenuItemInfo 関数と共に使用されます。

メニューには、テキスト、ビットマップ、またはその両方を使用して項目を表示できます。

注意

winuser.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして MENUITEMINFO を定義します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
Header winuser.h (Windows.h を含む)

関連項目

概念

GetMenuItemInfo

InsertMenuItem

メニュー

リファレンス

SetMenuItemInfo

WM_DRAWITEM

WM_MEASUREITEM