MENUITEMINFO構造体

Win98, 2K以上、95&NTはこちら
typedef struct tagMENUITEMINFO { fMask
UINT cbSize; //構造体のサイズ、構造体の使用前に設定 --
UINT fMask; //設定・変更用フラグ、構造体の使用前に設定 --
UINT fType; //メニュー項目の種類 MIIM_FTYPE
UINT fState; //メニュー項目の状態 MIIM_STATE
UINT wID; //アプリケーション定義の16ビット値 MIIM_ID
HMENU hSubMenu; //サブメニューのハンドル、なければNULL MIIM_SUBMENU
HBITMAP hbmpChecked; //チェック用画像のハンドル MIIM_CHECKMARKS
HBITMAP hbmpUnchecked; //チェックオフ用画像のハンドル MIIM_CHECKMARKS
DWORD dwItemData; //項目に結び付けられたアプリケーション定義の値 MIIM_DATA
LPTSTR dwTypeData; /*ヌル文字で終わる文字列
取得時は有効な文字列バッファのポインタを代入して
GetMenuItemInfo()を呼び出す*/
MIIM_STRING
UINT cch; //dwTypeDataの長さ MIIM_STRING
HBITMAP hbmpItem; //表示するビットマップのハンドルか、以下の表の値 MIIM_BITMAP
} MENUITEMINFO, *LPMENUITEMINFO;

fMask
定数 取得、またはセットするメンバ
MIIM_BITMAP hbmpItem
MIIM_CHECKMARKS hbmpChecked と hbmpUnchecked
MIIM_DATA dwItemData
MIIM_FTYPE fType
MIIM_ID wID
MIIM_STATE fState
MIIM_STRING dwTypeData
MIIM_SUBMENU hSubMenu


fType
定数 解説
MFT_MENUBARBREAK メニューバーの新しいラインにメニュー項目を配置
MFT_MENUBREAK メニューの新しいラインに項目を配置
MFT_OWNERDRAW オーナー描画メニュー
描画責任がメニューを所持するウィンドウに割り当てられる
MFT_RADIOCHECK チェックマークではなく、ラジオボタンマークを使って
メニュー項目をチェックする
MFT_RIGHTJUSTIFY 右揃えする
メニュー項目がメニューバーにある時のみ有効
MFT_RIGHTORDER Windows95 , NT5.0 以降
アラビア語など、右から左に読む言語をサポートする
MFT_SEPARATOR セパレータであることを表す

fState
定数 解説
MFS_CHECKED 項目をチェックする
MFS_DEFAULT 項目はデフォルトである
MFS_DISABLED 項目を無効状態にする
MFS_ENABLED 項目を有効状態にする(デフォルト)
MFS_GRAYED 項目をグレー状態にする
MFS_HILITE 項目をハイライト状態にする
MFS_UNCHECKED 項目のチェックを外す
MFS_UNHILITE 項目のハイライトを削除する

hbmpItem
定数 表示ビットマップ
HBMMENU_CALLBACK A bitmap that is drawn by the window that owns the menu. The application must process the WM_MEASUREITEM and WM_DRAWITEM messages.
HBMMENU_MBAR_CLOSE Close button for the menu bar.
HBMMENU_MBAR_CLOSE_D Disabled close button for the menu bar.
HBMMENU_MBAR_MINIMIZE Minimize button for the menu bar.
HBMMENU_MBAR_MINIMIZE_D Disabled minimize button for the menu bar.
HBMMENU_MBAR_RESTORE Restore button for the menu bar.
HBMMENU_POPUP_CLOSE Close button for the submenu.
HBMMENU_POPUP_MAXIMIZE Maximize button for the submenu.
HBMMENU_POPUP_MINIMIZE Minimize button for the submenu.
HBMMENU_POPUP_RESTORE Restore button for the submenu.
HBMMENU_SYSTEM Windows icon or the icon of the window specified in dwItemData.

文字列dwTypeDataの取得法
  1. dwTypeData に NULL を代入
  2. GetMenuItemInfo() で cch を取得
  3. バッファに必要なメモリを割り当て、そのポインタを dwTypeData に代入
  4. 再度 GetMenuItemInfo() を呼び出して、バッファに文字列を取得