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 下拉式方塊的選取項目欄位 (edit 控制項) 中進行繪圖。
ODS_DEFAULT 的項目是預設的項目。
hwndItem
指定下拉式方塊、 清單方塊和按鈕控制項的視窗控制代碼。 指定的功能表控制代碼 (HMENU) 包含功能表的項目。hDC
識別的裝置內容。 執行在控制項上的繪製作業時,必須使用這個裝置的內容。rcItem
在所指定的裝置內容的矩形hDC成員會定義要繪製之控制項的界限。 Windows 會自動裁剪任何擁有者會以下拉式方塊、 清單方塊和按鈕的裝置內容的項目,但它不會不裁剪的功能表項目。 擁有者繪製時的功能表項目,必須不繪製所定義的矩形界限之外 rcItem 成員。itemData
下拉式方塊或清單方塊中,這個成員會包含由下列其中一項傳遞給清單方塊的值:為功能表中,這個成員會包含值,由下列其中一項傳遞至功能表:
備註
主控描繪控制項或功能表項目的擁有人視窗接收到的變數的指標,此結構與lParam參數的WM_DRAWITEM訊息。
需求
標頭: winuser.h