Bonjour,

Dans un CDialog, j'ai un objet RichEdit.

Je voudrai calculer la hauteur de 6 lignes de texte afin de pouvoir modifier la hauteur de ce controle pour qu'il contienne exactement ces 6 lignes.

J'ai essayé GetTextExtend() qui ne semble pas gérer les saut de lignes, il marche bien pour la largeur mais pas la hauteur.

Je suis entrain de me battre avec le GetFont() mais la fonte que je récupère n'est pas la bonne.

Le but étant que la hauteur du RichEdit s'adapte automatiquement au nombre de lignes de la string à afficher et aussi à la fonte choisie par Windows lors de la création de mon dialogue.

Mon code :
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
void CMyRichEdit::SetText(const CString & String6Lignes)
{
CRect rect;
   GetWindowRect(rect);
   GetParent()->ScreenToClient(rect);
 
CClientDC dc(this);
CFont* font = dc.GetCurrentFont();
 
LOGFONT lf;
   font->GetLogFont(&lf);
 
   int cy = lf.lfHeight;
   rect.bottom = rect.top + (6 * cy);
 
   MoveWindow(rect);
}
Merci de votre aide.