Freigeben über


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
Winuser.h (einschließlich Windows.h)

Siehe auch

Referenz

WM_CTLCOLORBTN

WM_CTLCOLOREDIT

WM_CTLCOLORLISTBOX

WM_CTLCOLORSCROLLBAR

Andere Ressourcen

DefWindowProc

RealisierenPalette

SelectPalette

WM_CTLCOLORDLG