Share via


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

目前的繪圖階段。 這是下列其中一個值。

意義
全域值:
CDDS_POSTERASE
清除週期完成之後。
CDDS_POSTPAINT
繪製週期完成之後。
CDDS_PREERASE
清除週期開始之前。
CDDS_PREPAINT
繪製週期開始之前。
專案特定值:
CDDS_ITEM
表示 dwItemSpecuItemStatelItemlParam 成員有效。
CDDS_ITEMPOSTERASE
清除專案之後。
CDDS_ITEMPOSTPAINT
繪製專案之後。
CDDS_ITEMPREERASE
清除專案之前。
CDDS_ITEMPREPAINT
繪製專案之前。
CDDS_SUBITEM
如果繪製子專案,則旗標會與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

目前的專案狀態。 這個值是下列旗標的組合。

意義
CDIS_CHECKED
已選取這個項目。
CDIS_DEFAULT
這個項目處於預設狀態。
CDIS_DISABLED
項目已停用。
CDIS_FOCUS
專案處於焦點中。
CDIS_GRAYED
這個項目呈灰色。
CDIS_HOT
專案目前位於指標 (「hot」) 底下。
CDIS_INDETERMINATE
項目處於未定狀態。
CDIS_MARKED
這個項目已標示。 這的意義取決於實作。
CDIS_SELECTED
這個項目已選取。
注意 此旗標不適用於具有 LVS_SHOWSELALWAYS 樣式的擁有者繪製清單檢視控制項。 針對這些控制項,您可以使用 LVM_GETITEMSTATE (或 ListView_GetItemState) 和檢查 LVIS_SELECTED 旗標來判斷是否已選取專案。
 
CDIS_SHOWKEYBOARDCUES

6.0 版。專案會顯示其鍵盤提示。

請注意,Comctl32 第 6 版無法轉散發。 作業系統。 若要使用第 6 版 Comctl32.dll,請在資訊清單中指定它。 如需資訊清單的詳細資訊,請參閱 啟用視覺樣式

CDIS_NEARHOT
專案是目前在滑鼠指標下 (「熱」) 控制項的一部分,但專案本身不是「作用中」。 這的意義取決於實作。
CDIS_OTHERSIDEHOT
專案是目前位於滑鼠指標底下的 splitbutton (「熱」) ,但專案本身不是「作用中」。 這的意義取決於實作。
CDIS_DROPHILITED
專案目前是拖放作業的置放目標。

lItemlParam

類型: LPARAM

應用程式定義的專案資料。

備註

應用程式傳回的值取決於目前的繪圖階段。 相關聯NMCUSTOMDRAW結構的dwDrawStage成員會保留指定繪圖階段的值。 當 dwDrawStage 成員等於CDDS_PREPAINT和CDDS_PREERASE時,某些控制項會先傳送CDDS_PREERASE訊息,並預期傳回值會指出要傳送的後續訊息。 如需說明狀態和繪圖階段的程式碼範例,請參閱 使用自訂繪製來自訂控制項的外觀

規格需求

   
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限桌面應用程式]
標頭 commctrl.h