_Message WM CTLCOLORBTN
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 du bouton et les couleurs d’arrière-plan. Toutefois, seuls les boutons owner-drawn 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 du contexte d’affichage du bouton.
-
lParam
-
HWND qui spécifie le handle du bouton.
Valeur de retour
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éée (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- _ PUSHBUTTON BS, BS _ DEFPUSHBUTTONou 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 de commande requiert plusieurs pinceaux, mise en surbrillance et ombre, mais le message WM _ CTLCOLORBTN permet de retourner un seul pinceau. Pour fournir une apparence personnalisée pour les boutons de commande, utilisez un bouton owner-drawn. Pour plus d’informations, consultez création de contrôles Owner-Drawn.
Le message WM _ CTLCOLORBTN n’est jamais envoyé entre les threads. Elle est envoyée uniquement au sein d’un thread.
La couleur de texte d’une case à cocher ou d’une case d’option s’applique à la zone ou au bouton, à sa coche et au texte. Le rectangle de focus de ces boutons reste la couleur système par défaut (généralement le 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 de texte d’un bouton de commande s’applique uniquement à son rectangle de focus. elle n’affecte pas la couleur du texte.
Si une procédure de boîte de dialogue gère ce message, elle doit effectuer un cast de la valeur de retour souhaitée en _ ptr int et retourner la valeur directement. Si la procédure de boîte de dialogue retourne la valeur 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 [Applications de bureau Vista uniquement] |
| Serveur minimal pris en charge |
Windows Serveur 2003 [ applications de bureau uniquement] |
| En-tête |
|
Voir aussi
-
Autres ressources