Changer la couleur d'un label (static text control) avec Visual C++ - C++ - Programmation
Marsh Posté le 02-12-2003 à 15:49:18
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..
Marsh Posté le 02-12-2003 à 16:21:36
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
Marsh Posté le 02-12-2003 à 16:23:58
Ben.. J'avoue que je me suis "contenté" de ce moyen..
Marsh Posté le 02-12-2003 à 17:34:31
kason a écrit : Petite précision : je ne travaille pas avec les MFC... |
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 !)
Marsh Posté le 02-12-2003 à 17:48:24
WM_SETFONT.
Tu peux récupérer une font systeme avec GetStockObject
Marsh Posté le 03-12-2003 à 11:21:51
C bien ce que je me disais.. Même sans MFC, pour éviter les messages.. ??
Marsh Posté le 03-12-2003 à 11:45:07
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
Marsh Posté le 03-12-2003 à 12:29:55
Harkonnen a écrit : |
c'est chiant, nul et lourd ?
#include <windowsx.h> pour de la grosse macro qui tache
Marsh Posté le 03-12-2003 à 13:30:43
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
Marsh Posté le 03-12-2003 à 14:13:36
chrisbk a écrit : |
Bah c'est normal, on n'a jamais vu de poete utiliser les api système
Marsh Posté le 03-12-2003 à 14:36:13
hellbilly a écrit : |
Et que fait tu de Pertinoic ?
Citation : Oh Message, |
(inachevé)
Marsh Posté le 03-12-2003 à 15:56:31
Le style est intéressant mais les rimes sont vraiment pauvres
Marsh Posté le 03-12-2003 à 15:58:39
hellbilly a écrit : Le style est intéressant mais les rimes sont vraiment pauvres |
ben si personne n'en a entendu parler, c'est pas pour rien
Il est un peu trop precurseur quoi
Marsh Posté le 03-12-2003 à 16:13:22
c'est le probleme de tous ces artistes avant-gardistes, ce sont des incompris méconnus.
Marsh Posté le 03-12-2003 à 16:18:30
Harkonnen a écrit : |
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..
Marsh Posté le 03-12-2003 à 16:52:10
avec meme n'importe quoi d'un poil plus haut niveau que l'api w32...
Marsh Posté le 03-12-2003 à 17:03:40
Pas avec les MFCs en tt cas: c plus haut, mais pas d'un poil entier!!
Marsh Posté le 03-12-2003 à 17:48:49
Pas mal.. Mais pas tous (notamment ceux qui intéressent kason)..
Ce n'est donc pas un poil entier.
Marsh Posté le 03-12-2003 à 17:50:41
chaipas si c'est d'un poil entier ou pas, par contre toi les cheveux tu les coupes bien en 4 (ouais en fait ca rendrait mieux en allemand cette feinte, mais passons)
Marsh Posté le 03-12-2003 à 17:57:11
Disons que je suis suffisamment dégouté des mfcs pour avoir une certaine rancune.
Marsh Posté le 03-12-2003 à 17:59:48
oué je te dirais que je suis pas enchanté non plus (et winform roxor, tout ca)
Marsh Posté le 04-12-2003 à 10:19:07
Voilà une solution que j'ai testé et qui marche
Code :
|
Nota. Pour changer la couleur d'un seul composant ou d'utiliser plusieurs couleurs, il suffit d'utiliser GetDlgCtlrID
Non testé, mais devrait marcher
Code :
|
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}
Kason
Marsh Posté le 04-12-2003 à 10:28:15
TextControl c une classe de .net.. Tu es sûr de tes filtres MSDN??
Marsh Posté le 18-05-2005 à 14:59:32
@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 , 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
Marsh Posté le 02-12-2003 à 15:19:45
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."
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.
Kason