NM_CUSTOMDRAW通知程式碼

通知控制項的父視窗有關自訂繪圖作業。 此通知碼會以 WM_NOTIFY 訊息的形式傳送。

NM_CUSTOMDRAW

#ifdef LIST_VIEW_CUSTOM_DRAW

    lpNMCustomDraw = (LPNMLVCUSTOMDRAW) lParam;

#elif TOOL_TIPS_CUSTOM_DRAW

    lpNMCustomDraw = (LPNMTTCUSTOMDRAW) lParam;

#elif TREE_VIEW_CUSTOM_DRAW

    lpNMCustomDraw = (LPNMTVCUSTOMDRAW) lParam;

#elif TOOL_BAR_CUSTOM_DRAW

    lpNMCustomDraw = (LPNMTBCUSTOMDRAW) lParam;

#else

    lpNMCustomDraw = (LPNMCUSTOMDRAW) lParam;

#endif

參數

lParam

自訂繪製相關結構的指標,其中包含繪圖作業的相關資訊。 下列清單會指定控制項及其相關聯的結構。

控制 自訂繪製結構
Rebar、trackbar 和 header NMCUSTOMDRAW
清單檢視 NMLVCUSTOMDRAW
工具提示 NMTTCUSTOMDRAW
樹狀檢視 NMTVCUSTOMDRAW
工具列 NMTBCUSTOMDRAW

傳回值

您的應用程式可以傳回的值取決於目前的繪圖階段。 相關聯NMCUSTOMDRAW結構的dwDrawStage成員會保留指定繪圖階段的值。 您必須傳回下列其中一個值。

傳回碼 描述
CDRF_DODEFAULT
控制項會自行繪製。 它不會為此繪製週期傳送額外的 NM_CUSTOMDRAW 通知碼。 這個旗標不能與任何其他旗標搭配使用。
CDRF_DOERASE
控制項只會繪製背景。
CDRF_NEWFONT
您的應用程式為專案指定了新的字型;控制項會使用新的字型。 如需變更字型的詳細資訊,請參閱 變更字型和色彩。 當 dwDrawStage 等於CDDS_ITEMPREPAINT時,就會發生這種情況。
CDRF_NOTIFYITEMDRAW
控制項會通知父代任何專案相關的繪圖作業。 它會在繪圖專案前後傳送 NM_CUSTOMDRAW 通知碼。 當 dwDrawStage 等於CDDS_PREPAINT時,就會發生這種情況。
CDRF_NOTIFYPOSTERASE
清除專案之後,控制項會通知父代。 當 dwDrawStage 等於CDDS_PREPAINT時,就會發生這種情況。
CDRF_NOTIFYPOSTPAINT
當整個控制項的繪製週期完成時,控制項會傳送 NM_CUSTOMDRAW 通知碼。 當 dwDrawStage 等於CDDS_PREPAINT時,就會發生這種情況。
CDRF_NOTIFYSUBITEMDRAW
您的應用程式會收到NM_CUSTOMDRAW通知碼並將 dwDrawStage設定為 CDDS_ITEMPREPAINT |在繪製每個清單檢視子專案之前,CDDS_SUBITEM。 然後,您可以個別指定每個子專案的字型和色彩,或傳回 預設處理CDRF_DODEFAULT 。 當 dwDrawStage 等於CDDS_ITEMPREPAINT時,就會發生這種情況。
CDRF_SKIPDEFAULT
您的應用程式會手動擷取專案。 控制項不會繪製專案。 當 dwDrawStage 等於CDDS_ITEMPREPAINT時,就會發生這種情況。
CDRF_SKIPPOSTPAINT
控制項不會在專案周圍繪製焦點矩形。

備註

目前,下列控制項支援自訂繪製功能:標頭、清單檢視、Rebar、工具列、工具提示、追蹤列和樹狀檢視。 如果您有應用程式資訊清單,以確保有第 6 版Comctl32.dll,也支援按鈕控制項的自訂繪製。

如果在對話程式中處理此訊息,您必須先將傳回值設定為視窗資料的一部分,然後再傳回 TRUE。 如需詳細資訊,請參閱 DialogProc

規格需求

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

另請參閱

概念

自訂繪製