WM _ CTLCOLORSTATIC-Meldung

Ein statisches Steuerelement oder ein Bearbeitungssteuer steuerelement, das schreibgeschützt oder deaktiviert ist, sendet die WM _ CTLCOLORSTATIC-Nachricht an das übergeordnete Fenster, wenn das Steuerelement gezeichnet werden soll. Wenn auf diese Meldung reagiert wird, kann das übergeordnete Fenster das angegebene Gerätekontexthand handle 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

Handle für den Gerätekontext für das statische Steuerfenster.

lParam

Handle für das statische Steuerelement.

Rückgabewert

Wenn eine Anwendung diese Nachricht verarbeitet, ist der Rückgabewert ein Handle für einen Pinsel, mit dem das System den Hintergrund des statischen Steuerelements zeichnet.

Bemerkungen

Wenn die Anwendung einen von ihr erstellten Pinsel zurückgibt (z. B. mithilfe der CreateSolidBrush- oder CreateBrushIndirect-Funktion), muss die Anwendung den Pinsel frei geben. 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 freigibt.

Standardmäßig wählt die DefWindowProc-Funktion die Standardsystemfarben für das statische Steuerelement aus.

Sie können die Texthintergrundfarbe eines deaktivierten Bearbeitungssteuerfelds festlegen, aber Sie können die Textgrundfarbe 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, sondern nur innerhalb desselben Threads.

Wenn eine Dialogfeldprozedur diese Meldung verarbeitet, sollte sie den gewünschten Rückgabewert in eine INT _ PTR-Datei casten und den Wert direkt zurückgeben. Wenn die Dialogfeldprozedur FALSE zurückgibt, wird die Standardnachrichtenbehandlung ausgeführt. Der von der _ SetWindowLong-Funktion festgelegte MSGRESULT-DWL-Wert wird ignoriert.

Beispiele

Das folgende C++-Beispiel zeigt, wie die Text- und Hintergrundfarben eines statischen Steuerelements als Reaktion auf die _ WM-CTLCOLORSTATIC-Meldung 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 zugeordnete 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;
        }

Requirements (Anforderungen)

Anforderung Wert
Unterstützte Mindestversion (Client)
Windows Nur [ Vista-Desktop-Apps]
Unterstützte Mindestversion (Server)
Windows Nur Server [ 2003-Desktop-Apps]
Header
Winuser.h (include Windows.h)

Weitere Informationen

Referenz

WM _ CTLCOLORBTN

WM _ CTLCOLOREDIT

WM _ CTLCOLORLISTBOX

WM _ CTLCOLORSCROLLBAR

Andere Ressourcen

DefWindowProc

RealizePalette

Wählen SiePalette aus.

WM _ CTLCOLORDLG