WM_CTLCOLORBTN Nachricht
Die WM_CTLCOLORBTN Nachricht wird vor dem Zeichnen der Schaltfläche an das übergeordnete Fenster einer Schaltfläche gesendet. Das übergeordnete Fenster kann den Text und die Hintergrundfarben der Schaltfläche ändern. Allerdings reagieren nur vom Besitzer gezeichnete Schaltflächen auf das übergeordnete Fenster, das diese Nachricht verarbeitet.
WM_CTLCOLORBTN
WPARAM wParam;
LPARAM lParam;
Parameter
-
wParam
-
Ein HDC , der das Handle für den Anzeigekontext für die Schaltfläche angibt.
-
lParam
-
Ein HWND , der den Handle für die Schaltfläche angibt.
Rückgabewert
Wenn eine Anwendung diese Nachricht verarbeitet, muss sie ein Handle an einen Pinsel zurückgeben. Das System verwendet den Pinsel, um den Hintergrund der Schaltfläche zu malen.
Bemerkungen
Wenn die Anwendung einen von ihr erstellten Pinsel zurückgibt (z. B. mithilfe der Funktion CreateSolidBrush oder CreateBrushIndirect ), muss die Anwendung den Pinsel freigeben. Wenn die Anwendung einen Systempinsel zurückgibt (z. B. einen, der von der GetStockObject - oder GetSysColorBrush-Funktion abgerufen wurde), muss die Anwendung den Pinsel nicht freigeben.
Standardmäßig wählt die DefWindowProc-Funktion die Standardsystemfarben für die Schaltfläche aus. Schaltflächen mit den Formatvorlagen BS_PUSHBUTTON, BS_DEFPUSHBUTTON oder BS_PUSHLIKE verwenden den zurückgegebenen Pinsel nicht. Schaltflächen mit diesen Formatvorlagen werden immer mit den Standardsystemfarben gezeichnet. Für das Zeichnen von Drucktasten sind mehrere unterschiedliche Pinselarten erforderlich: Gesicht, Hervorhebung und Schatten, aber die WM_CTLCOLORBTN Nachricht ermöglicht es, nur einen Pinsel zurückzugeben. Verwenden Sie eine vom Besitzer gezeichnete Schaltfläche, um eine benutzerdefinierte Darstellung für Drucktasten bereitzustellen. Weitere Informationen finden Sie unter Erstellen von Owner-Drawn-Steuerelementen.
Die WM_CTLCOLORBTN Nachricht wird nie zwischen Threads gesendet. Es wird nur innerhalb eines Threads gesendet.
Die Textfarbe eines Kontrollkästchens oder Optionsfelds gilt für das Kontrollkästchen oder die Schaltfläche, das Kontrollkästchen und den Text. Das Fokusrechteck für diese Schaltflächen bleibt die Standardfarbe des Systems (in der Regel schwarz). Die Textfarbe eines Gruppenfelds gilt für den Text, aber nicht für die Zeile, die das Feld definiert. Die Textfarbe einer Drucktaste gilt nur für das Fokusrechteck; Dies wirkt sich nicht auf die Farbe des Texts aus.
Wenn eine Dialogfeldprozedur diese Nachricht verarbeitet, sollte sie den gewünschten Rückgabewert in eine INT_PTR umwandeln und den Wert direkt zurückgeben. Wenn die Dialogfeldprozedur FALSE zurückgibt, wird die Standardmeldungsbehandlung ausgeführt. Der von der SetWindowLong-Funktion festgelegte DWL_MSGRESULT Wert wird ignoriert.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) |
Windows Vista [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) |
Windows Server 2003 [nur Desktop-Apps] |
Header |
|
Siehe auch
-
Andere Ressourcen