WM_CTLCOLORSTATIC Nachricht
Ein statisches Steuerelement oder ein schreibgeschütztes oder deaktiviertes Bearbeitungssteuerelement sendet die WM_CTLCOLORSTATIC Nachricht an das übergeordnete Fenster, wenn das Steuerelement gezeichnet werden soll. Durch Reagieren auf diese Nachricht kann das übergeordnete Fenster das angegebene Gerätekontexthandle verwenden, um die Text- und Hintergrundfarben des statischen Steuerelements festzulegen.
Ein Fenster empfängt diese Nachricht über seine WindowProc-Funktion .
WM_CTLCOLORSTATIC
WPARAM wParam;
LPARAM lParam;
Parameter
-
wParam
-
Behandeln Sie den Gerätekontext für das statische Steuerelementfenster.
-
lParam
-
Handle mit dem statischen Steuerelement.
Rückgabewert
Wenn eine Anwendung diese Nachricht verarbeitet, ist der Rückgabewert ein Handle für einen Pinsel, den das System verwendet, um den Hintergrund des statischen Steuerelements zu zeichnen.
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 das statische Steuerelement aus.
Sie können die Texthintergrundfarbe eines deaktivierten Bearbeitungssteuerelements festlegen, aber sie können die Text-Vordergrundfarbe nicht festlegen. Das System verwendet immer COLOR_GRAYTEXT.
Bearbeitungssteuerelemente, die nicht schreibgeschützt oder deaktiviert sind, senden die WM_CTLCOLORSTATIC Nachricht nicht. Stattdessen senden sie die WM_CTLCOLOREDIT Nachricht.
Die WM_CTLCOLORSTATIC Nachricht wird nie zwischen Threads gesendet. Es wird nur innerhalb desselben Threads gesendet.
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.
Beispiele
Im folgenden C++-Beispiel wird gezeigt, wie die Text-Vordergrund- und Hintergrundfarben eines statischen Steuerelements als Reaktion auf die WM_CTLCOLORSTATIC Nachricht festgelegt werden. Die hbrBkgnd
Variable ist eine statische HBRUSH-Variable , die mit NULL initialisiert wird und den Hintergrundpinsel zwischen Aufrufen von WM_CTLCOLORSTATIC speichert. Der Pinsel muss durch einen Aufruf der DeleteObject-Funktion zerstört werden, wenn er nicht mehr benötigt wird, in der Regel, wenn das zugehörige Dialogfeld zerstört wird.
case WM_CTLCOLORSTATIC:
{
HDC hdcStatic = (HDC) wParam;
SetTextColor(hdcStatic, RGB(255,255,255));
SetBkColor(hdcStatic, RGB(0,0,0));
if (hbrBkgnd == NULL)
{
hbrBkgnd = CreateSolidBrush(RGB(0,0,0));
}
return (INT_PTR)hbrBkgnd;
}
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
-
Referenz
-
Andere Ressourcen