DRAWITEMSTRUCT 構造体
更新 : 2007 年 11 月
DRAWITEMSTRUCT 構造体は、オーナー描画コントロールあるいはメニュー項目を描画する方法を決める必要があるオーナー ウィンドウに情報を提供します。
typedef struct tagDRAWITEMSTRUCT {
UINT CtlType;
UINT CtlID;
UINT itemID;
UINT itemAction;
UINT itemState;
HWND hwndItem;
HDC hDC;
RECT rcItem;
DWORD itemData;
} DRAWITEMSTRUCT;
パラメータ
CtlType
コントロールの種類。コントロールの種類として、次のいずれかの値を指定します。ODT_BUTTON オーナー描画ボタン
ODT_COMBOBOX オーナー描画コンボ ボックス
ODT_LISTBOX オーナー描画リスト ボックス
ODT_MENU オーナー描画メニュー
ODT_LISTVIEW リスト ビュー コントロール
ODT_STATIC オーナー描画の静的コントロール
ODT_TAB タブ コントロール
CtlID
コンボ ボックス、リスト ボックス、ボタンのコントロール ID。メニューでは、このメンバは使用されません。itemID
メニューのメニュー項目 ID、またはリスト ボックスやコンボ ボックスの項目のインデックス。空のリスト ボックスやコンボ ボックスでは、このメンバは負の値になります。これにより、アプリケーションは、コントロールに項目がなくても、rcItem メンバで指定される座標にフォーカス四角形だけを描画できます。このフォーカス四角形により、ユーザーはコンボ ボックスやリスト ボックスが入力フォーカスを持っているかどうかを知ることができます。コンボ ボックスやリスト ボックスがあたかも入力フォーカスを持っているときのようにフォーカス四角形を描画するかどうかは、itemAction メンバのビットの設定によって決まります。itemAction
要求される描画動作を定義します。次のビットの 1 つ以上の組み合わせが設定されます。ODA_DRAWENTIRE コントロール全体を描画する必要がある場合は、このビットが設定されます。
ODA_FOCUS コントロールが入力フォーカスを取得したり失ったりするときに、このビットが設定されます。itemState メンバをチェックして、コントロールがフォーカスを持っているかどうかを調べる必要があります。
ODA_SELECT 選択項目のステータスが変更されたときにだけ、このビットが設定されます。itemState メンバをチェックして、新しい選択項目のステータスを調べる必要があります。
itemState
現在の描画動作が行われた後の項目の表示状態を指定します。つまり、メニュー項目を淡色表示にするときは、状態フラグ ODS_GRAYED が設定されます。状態フラグを次に示します。ODS_CHECKED メニュー項目をチェックする場合は、このビットが設定されます。このビットはメニューだけで使われます。
ODS_DISABLED 項目を使用できない状態で描画する場合は、このビットが設定されます。
ODS_FOCUS 項目が入力フォーカスを持つ場合は、このビットが設定されます。
ODS_GRAYED 項目を淡色表示する場合は、このビットが設定されます。このビットはメニューだけで使われます。
ODS_SELECTED 項目が選択されている場合は、このビットが設定されます。
ODS_COMBOBOXEDIT 描画が、オーナー描画コンボ ボックスの選択フィールド (エディット コントロール) で行われます。
ODS_DEFAULT 項目は既定の項目です。
hwndItem
コンボ ボックス、リスト ボックス、ボタンのコントロールのウィンドウ ハンドルを指定します。メニューでは、項目を持つメニューのハンドル (HMENU) を指定します。hDC
デバイス コンテキストを示します。コントロールに対して描画操作を実行するときは、このデバイス コンテキストを使用する必要があります。rcItem
hDC メンバによって指定されたデバイス コンテキスト内で、描画されるコントロールの境界を定義する四角形。Windows では、デバイス コンテキストでオーナーがコンボ ボックス、リスト ボックス、ボタンを描画した場合、その描画結果は自動的にクリップされますが、メニュー項目はクリップされません。メニュー項目を描画する場合、オーナーは必ず rcItem メンバで定義された境界四角形の内側に描画する必要があります。itemData
このメンバは、コンボ ボックスやリスト ボックスでは、次に示すメンバ関数の 1 つにより渡された値を保持します。メニューでは、次に示すメンバ関数の 1 つにより渡された値を保持します。
解説
オーナー描画コントロールまたはメニュー項目のオーナー ウィンドウは、WM_DRAWITEM メッセージの lParam パラメータにこの構造体へのポインタを受け取ります。
必要条件
ヘッダー : winuser.h