message WM_CTLCOLORSTATIC

Un contrôle statique ou un contrôle de modification en lecture seule ou désactivé envoie le message WM_CTLCOLORSTATIC à sa fenêtre parente lorsque le contrôle est sur le point d’être dessiné. En répondant à ce message, la fenêtre parente peut utiliser le handle de contexte d’appareil spécifié pour définir le premier plan de texte et les couleurs d’arrière-plan du contrôle statique.

Une fenêtre reçoit ce message via sa fonction WindowProc .

WM_CTLCOLORSTATIC

    WPARAM wParam;
    LPARAM lParam; 

Paramètres

wParam

Gérez le contexte de l’appareil pour la fenêtre de contrôle statique.

lParam

Gérez le contrôle statique.

Valeur retournée

Si une application traite ce message, la valeur de retour est un handle à un pinceau que le système utilise pour peindre l’arrière-plan du contrôle statique.

Notes

Si l’application retourne un pinceau créé (par exemple, à l’aide de la fonction CreateSolidBrush ou CreateBrushIndirect ), l’application doit libérer le pinceau. Si l’application retourne un pinceau système (par exemple, celui récupéré par la fonction GetStockObject ou GetSysColorBrush ), l’application n’a pas besoin de libérer le pinceau.

Par défaut, la fonction DefWindowProc sélectionne les couleurs système par défaut du contrôle statique.

Vous pouvez définir la couleur d’arrière-plan du texte d’un contrôle d’édition désactivé, mais vous ne pouvez pas définir la couleur de premier plan du texte. Le système utilise toujours COLOR_GRAYTEXT.

Modifier les contrôles qui ne sont pas en lecture seule ou désactivés n’envoient pas le message WM_CTLCOLORSTATIC ; Au lieu de cela, ils envoient le message WM_CTLCOLOREDIT .

Le message WM_CTLCOLORSTATIC n’est jamais envoyé entre les threads ; il est envoyé uniquement dans le même thread.

Si une procédure de boîte de dialogue gère ce message, elle doit convertir la valeur de retour souhaitée sur un INT_PTR et retourner directement la valeur. Si la procédure de boîte de dialogue retourne FALSE, la gestion des messages par défaut est effectuée. La valeur DWL_MSGRESULT définie par la fonction SetWindowLong est ignorée.

Exemples

L’exemple C++ suivant montre comment définir le premier plan de texte et les couleurs d’arrière-plan d’un contrôle statique en réponse au message WM_CTLCOLORSTATIC . La hbrBkgnd variable est une variable HBRUSH statique initialisée en NULL et stocke le pinceau en arrière-plan entre les appels à WM_CTLCOLORSTATIC. Le pinceau doit être détruit par un appel à la fonction DeleteObject lorsqu’il n’est plus nécessaire, généralement lorsque la boîte de dialogue associée est détruite.

   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;
        }

Spécifications

Condition requise Valeur
Client minimal pris en charge
Windows Vista [applications de bureau uniquement]
Serveur minimal pris en charge
Windows Server 2003 [applications de bureau uniquement]
En-tête
Winuser.h (inclure Windows.h)

Voir aussi

Référence

WM_CTLCOLORBTN

WM_CTLCOLOREDIT

WM_CTLCOLORLISTBOX

WM_CTLCOLORSCROLLBAR

Autres ressources

DefWindowProc

RéaliserPalette

SelectPalette

WM_CTLCOLORDLG