WM_CTLCOLORBTN message

Le message WM_CTLCOLORBTN est envoyé à la fenêtre parente d’un bouton avant de dessiner le bouton. La fenêtre parente peut modifier le texte et les couleurs d’arrière-plan du bouton. Toutefois, seuls les boutons dessinés par le propriétaire répondent à la fenêtre parente qui traite ce message.

WM_CTLCOLORBTN

    WPARAM wParam;
    LPARAM lParam; 

Paramètres

wParam

HdC qui spécifie le handle dans le contexte d’affichage du bouton.

lParam

HWND qui spécifie la poignée du bouton.

Valeur retournée

Si une application traite ce message, elle doit retourner un handle à un pinceau. Le système utilise le pinceau pour peindre l’arrière-plan du bouton.

Notes

Si l’application retourne un pinceau qu’elle a 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, un pinceau qui a été 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 pour le bouton. Les boutons avec les styles BS_PUSHBUTTON, BS_DEFPUSHBUTTON ou BS_PUSHLIKE n’utilisent pas le pinceau retourné. Les boutons avec ces styles sont toujours dessinés avec les couleurs système par défaut. Le dessin de boutons poussoirs nécessite plusieurs pinceaux différents (visage, surbrillance et ombre), mais le message WM_CTLCOLORBTN n’autorise qu’un seul pinceau à être retourné. Pour fournir une apparence personnalisée pour les boutons push, utilisez un bouton dessiné par le propriétaire. Pour plus d’informations, consultez Création de contrôles Owner-Drawn.

Le message WM_CTLCOLORBTN n’est jamais envoyé entre les threads. Il n’est envoyé qu’au sein d’un seul thread.

La couleur du texte d’une zone de case activée ou d’une case d’option s’applique à la zone ou au bouton, à son case activée marque et au texte. Le rectangle de focus pour ces boutons reste la couleur par défaut du système (généralement noir). La couleur de texte d’une zone de groupe s’applique au texte, mais pas à la ligne qui définit la zone. La couleur du texte d’un bouton push s’applique uniquement à son rectangle de focus ; cela n’affecte pas la couleur du texte.

Si une procédure de boîte de dialogue gère ce message, elle doit convertir la valeur de retour souhaitée en un INT_PTR et renvoyer la valeur directement. 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.

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

Autres ressources

RéaliserPalette

SélectionnerPalette