WM_CTLCOLORBTN訊息
在繪製按鈕之前,會將 WM_CTLCOLORBTN 訊息傳送至按鈕的父視窗。 父視窗可以變更按鈕的文字和背景色彩。 不過,只有擁有者繪製的按鈕會回應處理此訊息的父視窗。
WM_CTLCOLORBTN
WPARAM wParam;
LPARAM lParam;
參數
-
wParam
-
HDC,指定按鈕顯示內容的控制碼。
-
lParam
-
指定按鈕控制碼的 HWND 。
傳回值
如果應用程式處理此訊息,它必須傳回筆刷的控制碼。 系統會使用筆刷繪製按鈕的背景。
備註
例如,如果應用程式傳回 (建立的筆刷,請使用 CreateSolidBrush 或 CreateBrushIndirect 函式) ,應用程式必須釋放筆刷。 例如,如果應用程式傳回系統筆刷 (, GetStockObject 或 GetSysColorBrush 函式所擷取的筆刷) ,則應用程式不需要釋放筆刷。
DefWindowProc函式預設會選取按鈕的預設系統色彩。 具有 BS_PUSHBUTTON、 BS_DEFPUSHBUTTON或 BS_PUSHLIKE 樣式的按鈕不會使用傳回的筆刷。 具有這些樣式的按鈕一律會以預設系統色彩繪製。 繪圖按鈕需要數個不同的筆刷、反白顯示和陰影,但 WM_CTLCOLORBTN 訊息只允許傳回一個筆刷。 若要提供按鈕的自訂外觀,請使用擁有者繪製的按鈕。 如需詳細資訊,請參閱 建立Owner-Drawn控制項。
執行緒之間永遠不會傳送 WM_CTLCOLORBTN 訊息。 它只會在一個執行緒內傳送。
核取方塊或選項按鈕的文字色彩會套用至方塊或按鈕、其核取記號和文字。 這些按鈕的焦點矩形會維持系統預設色彩 (通常是黑色) 。 群組框的文字色彩會套用至文字,但不適用於定義方塊的線條。 一鍵的文字色彩僅適用于其焦點矩形;它不會影響文字的色彩。
如果對話方塊程式處理此訊息,它應該會將所需的傳回值轉換成 INT_PTR ,並直接傳回值。 如果對話方塊程式傳回 FALSE,則會執行預設訊息處理。 會忽略 SetWindowLong函式所設定的DWL_MSGRESULT值。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 |
Windows Vista [僅限傳統型應用程式] |
最低支援的伺服器 |
Windows Server 2003 [僅限桌面應用程式] |
標頭 |
|