Share via


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

参照

参照

CWnd::OnDrawItem

その他の技術情報

構造体、スタイル、コールバック関数とメッセージ マップ