Changer la couleur d'un static

[Résolu]
Signaler
Messages postés
361
Date d'inscription
mardi 31 décembre 2002
Statut
Membre
Dernière intervention
19 mars 2015
-
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
-
Bonjour,



j'aimerais modifier la couleur d'un objet static et la couleur de fond.



pour le moment, je n'ai trouvé qu'avec SetTextColor et SetBkColor

sauf que ca ne fonctionne qu'avec TextOut



mon static a été créé avec la méthode CreateWindow

est-ce qu'il existe un message à envoyer à l'objet static ?

ou une methode de contournement ?



merci



PS: je programme en win32 avec Devcpp

6 réponses

Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
suffit d'un code dans ce genre:

case WM_CTLCOLORSTATIC:
if(GetWindowLong((HWND)lParam, GWL_ID) == IDST_COLOR) {
SetBkMode((HDC) wParam, TRANSPARENT);
SetTextColor((HDC) wParam, clrT);
return (BOOL) hbr;
}
return 0;

ciao...
BruNews, MVP VC++
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
Exemple ici:
CHOIX COULEURS (WIN32, NON MFC)
http://www.cppfrance.com/code.aspx?id=10501

ciao...
BruNews, MVP VC++
Messages postés
361
Date d'inscription
mardi 31 décembre 2002
Statut
Membre
Dernière intervention
19 mars 2015

merci,
ca fonctionne (en renseignant hbr, avec par exemple
hbr = CreateSolidBrush(RGB(0, 0, 255));
si l'on veut un fond bleu)

par contre, comment faire pour changer la couleur "sur demande", (clic sur un bouton par exemple) ?
car l'evenement WM_CTLCOLORSTATIC n'est appelé qu'à la création et au réaffichage de l'objet.

merci
Messages postés
21041
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
30
C'est appelé à chaque repaint, que soit du à un changement du texte ou un appel explicite à InvalidateRect.

ciao...
BruNews, MVP VC++
Messages postés
361
Date d'inscription
mardi 31 décembre 2002
Statut
Membre
Dernière intervention
19 mars 2015

c'est bon, ca fonctionne !

merci
Messages postés
1910
Date d'inscription
vendredi 18 juin 2004
Statut
Modérateur
Dernière intervention
14 novembre 2014
13