Changements ds 1 richedit

Anacr0x Messages postés 515 Date d'inscription dimanche 25 mai 2003 Statut Membre Dernière intervention 27 avril 2006 - 28 sept. 2003 à 19:30
Anacr0x Messages postés 515 Date d'inscription dimanche 25 mai 2003 Statut Membre Dernière intervention 27 avril 2006 - 29 sept. 2003 à 20:51
voila, mon pb, j'arrive a changé la couleur et la taille (ainsi que d'autre choses) d'une portion de texte dans un richedit en faisant ainsi :

CHARFORMAT cf;

ZeroMemory(&cf, sizeof(CHARFORMAT));
cf.cbSize = sizeof(CHARFORMAT);
cf.dwMask = CFM_BOLD | CFM_COLOR | CFM_FACE | CFM_ITALIC | CFM_SIZE | CFM_UNDERLINE;
cf.dwEffects = 0;
cf.yHeight = 300;
cf.yOffset = 0;
cf.crTextColor = RGB(255,0,0);
cf.bCharSet = ANSI_CHARSET;
cf.bPitchAndFamily = DEFAULT_PITCH;
strcpy(cf.szFaceName, "Tahoma");

SendMessage(REditHandle, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM) &cf);


Mais voila, cette technique change le texte selectionné, mais quant j'ai le texte ds un buffer, j'aimerait l'afficher directement avec ces caractéristiques (sans devoir l'afficher normalemnt, le selectionner, puis le changer)

Quelqu'un a t-il une solution ?

2 réponses

fredcl Messages postés 547 Date d'inscription mercredi 8 janvier 2003 Statut Membre Dernière intervention 7 octobre 2007 1
29 sept. 2003 à 15:02
Bonjour,

je comprends pas exactement ce que tu veux faire, mais je pense que ces renseignements teseront précieux.

Le paramètres wParam peut prendre ces valeurs pour EM_SETCHARFORMAT

SCF_ALL Applique le formatage à tout le document.

SCF_SELECTION Applique le formatage à la sélection courrante. Si cette sélection est vide, le formatage est appliqué au point d'insertion et le texte ajouter après ce point d'insertion prendras les valeurs de ce formatage.

SCF_WORD | SCF_SELECTION Applique le formatage aux mots sélectionnés, Si la sélection est vide mais que le point d'insertion se trouve dans un mot celui ci prendras la valeur du formatage.

Bon courage

A+

Fred
0
Anacr0x Messages postés 515 Date d'inscription dimanche 25 mai 2003 Statut Membre Dernière intervention 27 avril 2006 2
29 sept. 2003 à 20:51
Merci de me répondre, mais ca, je le sais...

Mon problème se situe que j'ai besoin de modifié la couleur (pour faire simple) d'une phrase (et uniquement elle) que j'ai ds un buffer.

Donc, en utilisant
SendMessage(REditHandle, EM_SETCHARFORMAT, SCF_SELECTION, (LPARAM) &cf);

qui change la sélection, il faut d'abord que je me débrouille avec des WM_GETTEXTLENGTH et des EM_SETSEL pour sélectionner le texte que je vien d'afficher dans le richedit (c clair jusque la ?)

Ce n'est pas des plus simple ni des plus rapide, alor je cherche une méthode qui me permettrait de changé directement la phrase que j'affiche sans pour autant avoir besoin de définir le début et la fin du texte dans le richedit pour pouvoir le selectionner...
0
Rejoignez-nous