NMCUSTOMDRAW 結構 (commctrl.h)
包含 NM_CUSTOMDRAW 通知程式碼專屬的資訊。
語法
typedef struct tagNMCUSTOMDRAWINFO {
NMHDR hdr;
DWORD dwDrawStage;
HDC hdc;
RECT rc;
DWORD_PTR dwItemSpec;
UINT uItemState;
LPARAM lItemlParam;
} NMCUSTOMDRAW, *LPNMCUSTOMDRAW;
成員
hdr
類型: NMHDR
包含此通知程式碼相關資訊的 NMHDR 結構。
dwDrawStage
類型: DWORD
目前的繪圖階段。 這是下列其中一個值。
值 | 意義 |
---|---|
|
|
|
清除週期完成之後。 |
|
繪製週期完成之後。 |
|
清除週期開始之前。 |
|
繪製週期開始之前。 |
|
|
|
表示 dwItemSpec、 uItemState和 lItemlParam 成員有效。 |
|
清除專案之後。 |
|
繪製專案之後。 |
|
清除專案之前。 |
|
繪製專案之前。 |
|
如果繪製子專案,則旗標會與CDDS_ITEMPREPAINT或CDDS_ITEMPOSTPAINT結合。 只有在 從CDDS_PREPAINT 傳回CDRF_NOTIFYITEMDRAW時,才會設定此設定。 |
hdc
類型: HDC
控制項裝置內容的控制碼。 使用此 HDC 來執行任何 GDI 函式。
rc
類型: RECT
描述所繪製區域周框的 RECT 結構。 這個成員只會由CDDS_ITEMPREPAINT通知初始化。 5.80 版。 此成員也會由CDDS_PREPAINT通知初始化。
dwItemSpec
類型: DWORD_PTR
專案編號。 此成員中包含的內容將取決於傳送通知的控制項類型。 請參閱特定控制項 的NM_CUSTOMDRAW 通知參考,以判斷此成員中是否包含任何專案。
uItemState
類型: UINT
目前的專案狀態。 這個值是下列旗標的組合。
值 | 意義 |
---|---|
|
已選取這個項目。 |
|
這個項目處於預設狀態。 |
|
項目已停用。 |
|
專案處於焦點中。 |
|
這個項目呈灰色。 |
|
專案目前位於指標 (「hot」) 底下。 |
|
項目處於未定狀態。 |
|
這個項目已標示。 這的意義取決於實作。 |
|
這個項目已選取。
注意 此旗標不適用於具有 LVS_SHOWSELALWAYS 樣式的擁有者繪製清單檢視控制項。 針對這些控制項,您可以使用 LVM_GETITEMSTATE (或 ListView_GetItemState) 和檢查 LVIS_SELECTED 旗標來判斷是否已選取專案。
|
|
6.0 版。專案會顯示其鍵盤提示。 請注意,Comctl32 第 6 版無法轉散發。 作業系統。 若要使用第 6 版 Comctl32.dll,請在資訊清單中指定它。 如需資訊清單的詳細資訊,請參閱 啟用視覺樣式。 |
|
專案是目前在滑鼠指標下 (「熱」) 控制項的一部分,但專案本身不是「作用中」。 這的意義取決於實作。 |
|
專案是目前位於滑鼠指標底下的 splitbutton (「熱」) ,但專案本身不是「作用中」。 這的意義取決於實作。 |
|
專案目前是拖放作業的置放目標。 |
lItemlParam
類型: LPARAM
應用程式定義的專案資料。
備註
應用程式傳回的值取決於目前的繪圖階段。 相關聯NMCUSTOMDRAW結構的dwDrawStage成員會保留指定繪圖階段的值。 當 dwDrawStage 成員等於CDDS_PREPAINT和CDDS_PREERASE時,某些控制項會先傳送CDDS_PREERASE訊息,並預期傳回值會指出要傳送的後續訊息。 如需說明狀態和繪圖階段的程式碼範例,請參閱 使用自訂繪製來自訂控制項的外觀。
規格需求
最低支援的用戶端 | Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限桌面應用程式] |
標頭 | commctrl.h |