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 メッセージでは 1 つのブラシのみを返すことができます。 プッシュ ボタンのカスタム外観を提供するには、所有者描画ボタンを使用します。 詳細については、「 Owner-Drawn コントロールの作成」を参照してください。
WM_CTLCOLORBTN メッセージがスレッド間で送信されることはありません。 1 つのスレッド内でのみ送信されます。
チェック ボックスまたはラジオ ボタンのテキストの色は、ボックスまたはボタン、そのチェックマーク、およびテキストに適用されます。 これらのボタンのフォーカス四角形は、システムの既定の色 (通常は黒) のままです。 グループ ボックスのテキストの色はテキストに適用されますが、ボックスを定義する行には適用されません。 プッシュ ボタンのテキストの色は、フォーカスの四角形にのみ適用されます。テキストの色には影響しません。
ダイアログ ボックス プロシージャがこのメッセージを処理する場合は、目的の戻り値を INT_PTR にキャストし、値を直接返す必要があります。 ダイアログ ボックス プロシージャが FALSE を返す場合は、既定のメッセージ処理が実行されます。 SetWindowLong 関数によって設定されたDWL_MSGRESULT値は無視されます。
必要条件
要件 | 値 |
---|---|
サポートされている最小のクライアント |
Windows Vista [デスクトップ アプリのみ] |
サポートされている最小のサーバー |
Windows Server 2003 [デスクトップ アプリのみ] |
Header |
|
関連項目
-
その他のリソース