Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
890 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Changer la couleur d'un label (static text control) avec Visual C++

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Changer la couleur d'un label (static text control) avec Visual C++

n°581510
kason
Ab uno disce omnes
Posté le 02-12-2003 à 15:19:45  profilanswer
 

Je travaille avec Visual C++ sous Win98.
 
J'ai créé une fenêtre de dialogue avec des composants dessus : des edit, des static text (labels) et des boutons. :)
 
Objectif:
Je souhaite modifier au moins la couleur des labels (police et taille de la police aussi si possible).
 
Ma recherche sur la MSDN a donné ceci :
 
"This control displays a static text. The text may use a predefined style. This is done by putting the name of the style in the form {\style} at the start of the string, where style is one of the keys in the TextStyle Table. A base text style can be assigned to the control by supplying {&style} at the very beginning of a the text string. This style is used whenever no other style is defined by the string." :cry:
 
Je ne vois pas du tout où il faut écrire {\style} et comment faire pour modifier la police, sa taille, la couleur (où écrire les champs). Dans la fenêtre Propriété -> Caption ? :??:
 
En fait j'ai besoin d'un exemple concret :)
 
Merci pour vos réponses. :hello:
 
Kason
 

mood
Publicité
Posté le 02-12-2003 à 15:19:45  profilanswer
 

n°581561
H4dd3R
Q2
Posté le 02-12-2003 à 15:49:18  profilanswer
 

TN062: Message Reflection for Windows Controls ds l'aide de visual..
A toi la joie de la réflexion de messages!! ;)
 
Désolé je détaille pas plus c un trop gros chantier et ça fait un moment que je l'ai fait..


---------------
Athlon64 s754 10*200MHz - R9800Pro - 512MB DDR200MHz - ZX6RR - Q2[SupOp] - Tutorial Video: multilangues, multisstitres
n°581621
kason
Ab uno disce omnes
Posté le 02-12-2003 à 16:21:36  profilanswer
 

Petite précision : je ne travaille pas avec les MFC...
 
Je voudrais éviter de passer par les messages windows. Il doit bien avoir un moyen de paramétrer la police, la couleur, la taille ? On ne va tout de même pas utiliser le marteau-piqueur pour écraser une mouche ?
 
Kason

n°581625
H4dd3R
Q2
Posté le 02-12-2003 à 16:23:58  profilanswer
 

Ben.. J'avoue que je me suis "contenté" de ce moyen..


---------------
Athlon64 s754 10*200MHz - R9800Pro - 512MB DDR200MHz - ZX6RR - Q2[SupOp] - Tutorial Video: multilangues, multisstitres
n°581667
hellbilly
free smile
Posté le 02-12-2003 à 17:34:31  profilanswer
 

kason a écrit :

Petite précision : je ne travaille pas avec les MFC...
 
Je voudrais éviter de passer par les messages windows. Il doit bien avoir un moyen de paramétrer la police, la couleur, la taille ? On ne va tout de même pas utiliser le marteau-piqueur pour écraser une mouche ?
 
Kason


Tu programmes en win32 et tu veux eviter les messages ? ben bon courage.
Pour changer les couleurs de tes labels : regarde le message WM_CTLCOLORSTATIC et les fonctions SetBkColor et SetTextColor.
Pour modifier la police (style, couleur, taille, ...), je crée à la mano la police, et j'écris le tout dans un rectangle avec un ExtTextOut (y a peut etre plus simple !)

n°581677
HelloWorld
Salut tout le monde!
Posté le 02-12-2003 à 17:48:24  profilanswer
 

WM_SETFONT.
Tu peux récupérer une font systeme avec GetStockObject

n°582195
H4dd3R
Q2
Posté le 03-12-2003 à 11:21:51  profilanswer
 

C bien ce que je me disais.. Même sans MFC, pour éviter les messages.. ??


---------------
Athlon64 s754 10*200MHz - R9800Pro - 512MB DDR200MHz - ZX6RR - Q2[SupOp] - Tutorial Video: multilangues, multisstitres
n°582213
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 03-12-2003 à 11:45:07  profilanswer
 

H4dd3R a écrit :

C bien ce que je me disais.. Même sans MFC, pour éviter les messages.. ??


La prog Win32 est principalement basée sur l'envoi et la réception de messages. Si tu ne fais pas de MFC, ça veut dire que tu fais du Win32. Donc n'espère pas couper à leur utilisation. Je vois pas ce qui te gène dans l'utilisation des messages

n°582246
chrisbk
-
Posté le 03-12-2003 à 12:29:55  profilanswer
 

Harkonnen a écrit :


La prog Win32 est principalement basée sur l'envoi et la réception de messages. Si tu ne fais pas de MFC, ça veut dire que tu fais du Win32. Donc n'espère pas couper à leur utilisation. Je vois pas ce qui te gène dans l'utilisation des messages


 
c'est chiant, nul et lourd ?  
 
#include <windowsx.h> pour de la grosse macro qui tache

n°582257
HelloWorld
Salut tout le monde!
Posté le 03-12-2003 à 12:59:46  profilanswer
 

C'est puissant, orienté objet, générique ?

mood
Publicité
Posté le 03-12-2003 à 12:59:46  profilanswer
 

n°582271
chrisbk
-
Posté le 03-12-2003 à 13:30:43  profilanswer
 

HelloWorld a écrit :

C'est puissant, orienté objet, générique ?


 
je dois etre du genre gros balot, je prefere faire list.addItem(toto) que SendMessage(list, LB_ADDITEM,(WPARAM)item) mais bon, la poesie ca se discute pas [:icon12]

n°582299
hellbilly
free smile
Posté le 03-12-2003 à 14:13:36  profilanswer
 

chrisbk a écrit :


 
je dois etre du genre gros balot, je prefere faire list.addItem(toto) que SendMessage(list, LB_ADDITEM,(WPARAM)item) mais bon, la poesie ca se discute pas [:icon12]


Bah c'est normal, on n'a jamais vu de poete utiliser les api système  :o  

n°582323
chrisbk
-
Posté le 03-12-2003 à 14:36:13  profilanswer
 

hellbilly a écrit :


Bah c'est normal, on n'a jamais vu de poete utiliser les api système  :o  


 
Et que fait tu de Pertinoic ? :heink:
 

Citation :

Oh Message,  
Simple et generique
Direct et Franc,
Traverse les ages,
Traverse l'espace,
Franchis les obstacles,
Et Change la couleur de mon putain de static text de mes couilles


 
(inachevé)
 

n°582395
hellbilly
free smile
Posté le 03-12-2003 à 15:56:31  profilanswer
 

Le style est intéressant mais les rimes sont vraiment pauvres  :na:

n°582397
chrisbk
-
Posté le 03-12-2003 à 15:58:39  profilanswer
 

hellbilly a écrit :

Le style est intéressant mais les rimes sont vraiment pauvres  :na:  


 
ben si personne n'en a entendu parler, c'est pas pour rien [:spamafote]
Il est un peu trop precurseur quoi

n°582405
hellbilly
free smile
Posté le 03-12-2003 à 16:13:22  profilanswer
 

c'est le probleme de tous ces artistes avant-gardistes, ce sont des incompris méconnus.

n°582413
H4dd3R
Q2
Posté le 03-12-2003 à 16:18:30  profilanswer
 

Harkonnen a écrit :


La prog Win32 est principalement basée sur l'envoi et la réception de messages. Si tu ne fais pas de MFC, ça veut dire que tu fais du Win32. Donc n'espère pas couper à leur utilisation. Je vois pas ce qui te gène dans l'utilisation des messages


Tu prèches un convaincu pour ce qui est de la nécessité des messages pour de la prog windows..
Par contre c vrai que c moche, et pour ceux que la poésie des messages ne touche pas, ils peuvent y échapper avec .net.. ;)


---------------
Athlon64 s754 10*200MHz - R9800Pro - 512MB DDR200MHz - ZX6RR - Q2[SupOp] - Tutorial Video: multilangues, multisstitres
n°582470
chrisbk
-
Posté le 03-12-2003 à 16:52:10  profilanswer
 

avec meme n'importe quoi d'un poil plus haut niveau que l'api w32...

n°582485
H4dd3R
Q2
Posté le 03-12-2003 à 17:03:40  profilanswer
 

Pas avec les MFCs en tt cas: c plus haut, mais pas d'un poil entier!! ;)


---------------
Athlon64 s754 10*200MHz - R9800Pro - 512MB DDR200MHz - ZX6RR - Q2[SupOp] - Tutorial Video: multilangues, multisstitres
n°582490
chrisbk
-
Posté le 03-12-2003 à 17:07:05  profilanswer
 

bah elles t'evitent deja pas mal de message quand meme :O  

n°582522
H4dd3R
Q2
Posté le 03-12-2003 à 17:48:49  profilanswer
 

Pas mal.. Mais pas tous (notamment ceux qui intéressent kason).. ;)
Ce n'est donc pas un poil entier. ;)


---------------
Athlon64 s754 10*200MHz - R9800Pro - 512MB DDR200MHz - ZX6RR - Q2[SupOp] - Tutorial Video: multilangues, multisstitres
n°582524
chrisbk
-
Posté le 03-12-2003 à 17:50:41  profilanswer
 

chaipas si c'est d'un poil entier ou pas, par contre toi les cheveux tu les coupes bien en 4 :O (ouais en fait ca rendrait mieux en allemand cette feinte, mais passons)

n°582529
H4dd3R
Q2
Posté le 03-12-2003 à 17:57:11  profilanswer
 

Disons que je suis suffisamment dégouté des mfcs pour avoir une certaine rancune. ;)


---------------
Athlon64 s754 10*200MHz - R9800Pro - 512MB DDR200MHz - ZX6RR - Q2[SupOp] - Tutorial Video: multilangues, multisstitres
n°582531
chrisbk
-
Posté le 03-12-2003 à 17:59:48  profilanswer
 

oué je te dirais que je suis pas enchanté non plus (et winform roxor, tout ca)

n°582864
kason
Ab uno disce omnes
Posté le 04-12-2003 à 10:19:07  profilanswer
 

Voilà une solution que j'ai testé et qui marche :)
 

Code :
  1. HDC hdcStatic;
  2. // Couleur de fond de la fenêtre (bleu pâle)
  3. HBRUSH hbrBackground = CreateSolidBrush(RGB(180, 213, 245));
  4. ...
  5. case WM_CTLCOLORDLG:
  6.     // Application de la couleur de fond de la fenêtre
  7.     return (LONG)hbrBackground;
  8. case WM_CTLCOLORSTATIC:
  9.     hdcStatic = (HDC)wParam;
  10.     // Couleur rouge   
  11.     SetTextColor( hdcStatic, RGB(255, 0, 0) );
  12.     SetBkMode( hdcStatic, TRANSPARENT );
  13.     return (LONG)hbrBackground;
  14. ...


 
Nota. Pour changer la couleur d'un seul composant ou d'utiliser plusieurs couleurs, il suffit d'utiliser GetDlgCtlrID
 
Non testé, mais devrait marcher  :D
 

Code :
  1. switch (GetDlgCtlrID(hWnd))
  2. {
  3. case IDC_Titi:
  4.    SetTextColor( hdcStatic, RGB(255, 0, 0) );
  5.    break;
  6. case IDC_Toto:
  7.    SetTextColor( hdcStatic, RGB(255, 255, 0) );
  8.    break;
  9. default:
  10.    SetTextColor( hdcStatic, RGB(0, 0, 0) );
  11. }


 
Sinon, dans ma recherche de solution, je ne comprends pas ce que fait la "TextStyle table" (cf. Text control de la MSDN) et comment l'utiliser dans le cas présent : {\style} ou {&style}  :sweat:  
 
Kason

n°582872
H4dd3R
Q2
Posté le 04-12-2003 à 10:28:15  profilanswer
 

TextControl c une classe de .net.. Tu es sûr de tes filtres MSDN??


---------------
Athlon64 s754 10*200MHz - R9800Pro - 512MB DDR200MHz - ZX6RR - Q2[SupOp] - Tutorial Video: multilangues, multisstitres
n°1087935
jeoff
Posté le 18-05-2005 à 14:59:32  profilanswer
 

@kason
 
j'ai mis un moment avant de comprendre comment fonctionnait le code mais c'est bon ! (j'avais pas compris que l'on testai l'ID de l'item à dessiner :whistle:, jme voyai déjà en train de galérer pour le refiler en paramètre à la fonction)
 
Milles mercis, même pas eu besoin de poster :)


Message édité par jeoff le 18-05-2005 à 15:00:23
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Changer la couleur d'un label (static text control) avec Visual C++

 

Sujets relatifs
prog simple : creer un fichier txt commandé sous visual basicErreur sous Visual Basic 6
[ html ] donner de la couleur à "title"visual paradigm : ça vous cause ?
Quand je change de couleur ça planteconseil pour changer d'hébergeur
Visual C++ : Dialog Box HTML based, controls old style...pb access office XP ->access 97 : la version de visual
changer caractere de fin de ligne sous dans mon scrip Linux[C#] Comment changer l'addresse IP de la machine en c# ?
Plus de sujets relatifs à : Changer la couleur d'un label (static text control) avec Visual C++


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR