Changer la couleur d'un static

Résolu
mogwai93 Messages postés 362 Date d'inscription mardi 31 décembre 2002 Statut Membre Dernière intervention 4 novembre 2023 - 25 oct. 2005 à 21:27
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 - 27 oct. 2005 à 15:27
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

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
25 oct. 2005 à 23:43
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++
3
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
26 oct. 2005 à 15:32
Exemple ici:
CHOIX COULEURS (WIN32, NON MFC)
http://www.cppfrance.com/code.aspx?id=10501

ciao...
BruNews, MVP VC++
3
mogwai93 Messages postés 362 Date d'inscription mardi 31 décembre 2002 Statut Membre Dernière intervention 4 novembre 2023
26 oct. 2005 à 15:08
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
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
26 oct. 2005 à 15:31
C'est appelé à chaque repaint, que soit du à un changement du texte ou un appel explicite à InvalidateRect.

ciao...
BruNews, MVP VC++
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mogwai93 Messages postés 362 Date d'inscription mardi 31 décembre 2002 Statut Membre Dernière intervention 4 novembre 2023
26 oct. 2005 à 16:00
c'est bon, ca fonctionne !

merci
0
racpp Messages postés 1909 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 17
27 oct. 2005 à 15:27
0
Rejoignez-nous