WM_CTLCOLORBTN訊息

在繪製按鈕之前,會將 WM_CTLCOLORBTN 訊息傳送至按鈕的父視窗。 父視窗可以變更按鈕的文字和背景色彩。 不過,只有擁有者繪製的按鈕會回應處理此訊息的父視窗。

WM_CTLCOLORBTN

    WPARAM wParam;
    LPARAM lParam; 

參數

wParam

HDC,指定按鈕顯示內容的控制碼。

lParam

指定按鈕控制碼的 HWND

傳回值

如果應用程式處理此訊息,它必須傳回筆刷的控制碼。 系統會使用筆刷繪製按鈕的背景。

備註

例如,如果應用程式傳回 (建立的筆刷,請使用 CreateSolidBrushCreateBrushIndirect 函式) ,應用程式必須釋放筆刷。 例如,如果應用程式傳回系統筆刷 (, GetStockObjectGetSysColorBrush 函式所擷取的筆刷) ,則應用程式不需要釋放筆刷。

DefWindowProc函式預設會選取按鈕的預設系統色彩。 具有 BS_PUSHBUTTONBS_DEFPUSHBUTTONBS_PUSHLIKE 樣式的按鈕不會使用傳回的筆刷。 具有這些樣式的按鈕一律會以預設系統色彩繪製。 繪圖按鈕需要數個不同的筆刷、反白顯示和陰影,但 WM_CTLCOLORBTN 訊息只允許傳回一個筆刷。 若要提供按鈕的自訂外觀,請使用擁有者繪製的按鈕。 如需詳細資訊,請參閱 建立Owner-Drawn控制項

執行緒之間永遠不會傳送 WM_CTLCOLORBTN 訊息。 它只會在一個執行緒內傳送。

核取方塊或選項按鈕的文字色彩會套用至方塊或按鈕、其核取記號和文字。 這些按鈕的焦點矩形會維持系統預設色彩 (通常是黑色) 。 群組框的文字色彩會套用至文字,但不適用於定義方塊的線條。 一鍵的文字色彩僅適用于其焦點矩形;它不會影響文字的色彩。

如果對話方塊程式處理此訊息,它應該會將所需的傳回值轉換成 INT_PTR ,並直接傳回值。 如果對話方塊程式傳回 FALSE,則會執行預設訊息處理。 會忽略 SetWindowLong函式所設定的DWL_MSGRESULT值。

規格需求

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

另請參閱

其他資源

RealizePalette

SelectPalette