DRAWITEMSTRUCT 構造体
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