Bonjour,
existe-t-il un moyen de définir la largeur d'un RichEdit, pour qu'il puisse afficher entièrement sa plus grande ligne ?
Tout en sachant que la taille de la Font peut varier en cours d'utilisation du programme Sinon c'est pas marrant !
Bonjour,
existe-t-il un moyen de définir la largeur d'un RichEdit, pour qu'il puisse afficher entièrement sa plus grande ligne ?
Tout en sachant que la taille de la Font peut varier en cours d'utilisation du programme Sinon c'est pas marrant !
@ bientôt...
Salut & @+ sur 3W!
Bonsoir,
Etonnant et 'casse-pieds' ce truc, que ce soit l'exemple donné pour OnRequestResize ou bien en travaillant sur le message EN_REQUESTRESIZE, je n'obtiens pas la modification du Widht (celle du Height en revanche, oui).
Bizarre ... (enfin pour moi)
Current StatusAux persévérants aucune route n'est interdite.
Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
Faîtes quelque chose de bien avec vos petits sous: Enfants du MekongAvec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
Bonjour,
merci pour ce soutien. Je mets la balise à 'Résolu', parce que j'ai trouvé une solution, qui à mon goût n'est pas élégante.
J'ai posé sur ma fiche un composant TLabel, dont la propriéte Autosize est mise à True.
Ce composant est invisible, et j'y écris la phrase la plus longue qui sera inscrite dans le composant TRichEdit.
Ensuite j'adapte la propriété ClientWidth de ce dernier, à la valeur de la propriété Width du TLabel. Ce dernier ayant pris la taille nécessaire pour afficher correctement la phrase.
@ bientôt...
Salut & @+ sur 3W!
Bonsoir,
Mince ... je crois que je viens de trouver, un peu tard donc.
Mais chui content quand même
Donc, il faut gérer le message WM_NOTIFY de la TForm, et capter la 'notification' EN_REQUESTRESIZE .
Dans le .H:
Dans le .CPP:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 void __fastcall OnNotify(TMessage &msg); BEGIN_MESSAGE_MAP MESSAGE_HANDLER(WM_NOTIFY, TMessage, OnNotify) END_MESSAGE_MAP(TForm)
A voir avec les variations possibles de la Font, comme énoncé au début.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 void __fastcall TForm2::OnNotify(TMessage &msg) { NMHDR *nmhdr; nmhdr = (tagNMHDR*)msg.LParam; if (nmhdr->code == EN_REQUESTRESIZE) { TControlCanvas *pc = new TControlCanvas(); pc->Control = RichEdit1; int s; if (RichEdit1->Lines->Count > 0) { s = pc->TextExtent( RichEdit1->Lines->Strings[0] ).cx; for (int i = 1; i < RichEdit1->Lines->Count; i++) { if ( pc->TextExtent( RichEdit1->Lines->Strings[i] ).cx > s ) { s = pc->TextExtent( RichEdit1->Lines->Strings[i] ).cx; } } REQRESIZE *rq; rq = (REQRESIZE*)msg.LParam; SetWindowPos(RichEdit1->Handle, NULL, 0, 0, s, RichEdit1->Height, SWP_SHOWWINDOW | SWP_NOMOVE); } delete pc; } DefaultHandler(&msg); }
Et pis, il faut aussi fixer une limite minimum pour le redimensionnement du RichEdit, parceque sinon cela peut prendre un drôle d'aspect.
En espérant que cela serve ...
@ +
Current StatusAux persévérants aucune route n'est interdite.
Celui qui ne sait pas se contenter de peu ne sera jamais content de rien.
Faîtes quelque chose de bien avec vos petits sous: Enfants du MekongAvec 40% de pollinisateurs invertébrés menacés d'extinction selon les Nations Unies, l'homme risque fort de passer de la monoculture à la mono diète...
Merci pour cette réponse...même tardive elle est la bienvenue
Parce que ma solution à moi, je ne la trouve pas belle
@ bientôt...
Salut & @+ sur 3W!
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager