共用方式為


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
    定義所需的繪圖動作。 這就是下列一個或多個位元:

    • 表示需要繪製時,ODA_DRAWENTIRE 設定這個位元整個。

    • 當控制項取得或失去輸入焦點時,ODA_FOCUS 設定這個位元。 itemState 成員應該會檢查判斷控制項是否有焦點。

    • 當只選取狀態變更時,ODA_SELECT 設定這個位元。 itemState 成員應該會檢查以確定新的選取狀態。

  • itemState
    在目前繪圖動作後,指定項目的可見狀態。 也就是說,如果功能表項目是暗灰色,狀態旗標 ODS_GRAYED 會設定。 狀態旗標如下:

    • 如果功能表項目已選取,ODS_CHECKED 設定這個位元。 這個位元在功能表才會使用。

    • 如果要將項目繪製停用,如ODS_DISABLED 設定這個位元。

    • 如果項目擁有輸入焦點,ODS_FOCUS 設定這個位元。

    • 如果項目是暗灰色,ODS_GRAYED 設定這個位元。 這個位元在功能表才會使用。

    • 如果項目狀態為已選取,ODS_SELECTED 設定這個位元。

    • ODS_COMBOBOXEDIT 繪製在選取欄位 (編輯控制項) 發生 ownerdrawn 下拉式方塊。

    • ODS_DEFAULT 項目是預設項目。

  • hwndItem
    為下拉式方塊、清單方塊和按鈕指定控制項的視窗控制代碼。 為指定功能表的功能表 (HMENU) 的控制代碼包含項目。

  • hDC
    識別的裝置內容。 這個裝置內容時,執行控制項時,繪製作業必須使用。

  • rcItem
    矩形在裝置內容由定義所要繪製的控制項界限的 hDC 成員指定了。 視窗在下拉式方塊、清單方塊和按鈕的裝置內容自動裁剪任何主控描繪,不過,它不會功能表項目。 在繪製功能表項目時,擁有者無法在 rcItem 成員定義的矩形的邊界之外繪製。

  • itemData
    對於下拉式方塊或清單方塊,成員包含傳遞至清單方塊中下列其中一個值:

    針對功能表,這個成員包含傳遞至功能表下列其中一個值:

備註

主控描繪控制項或功能表項目的主控視窗接收指標對這個結構為 WM_DRAWITEM 訊息的 lParam 參數。

需求

Header:

請參閱

參考

CWnd::OnDrawItem

其他資源

結構、樣式、回呼和訊息對應