Bonjour,
Je suis entrain de créer un petit éditeur graphique avec la saisie de texte à la volée.
Mais je voudrais que la taille de mon édit change en fonction du contenu de l'edit.
j'ai commencé à faire ça :Mais ce que je ne comprend pas dans le code que j'ai mis audessus c'est que le "GetOutputTextExtent" me retourne toujours une taille "cx=0 et cy=0".
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 void CGEEditInline::OnChange() { DWORD dwMargins = GetMargins ( ); WORD wMarginLeft = LOWORD ( dwMargins ); WORD wMarginRight = HIWORD ( dwMargins ); CRect rcClient; GetClientRect ( &rcClient ); CString sLine; int nLineLenght = LineLength ( 0 ); GetLine ( 0, sLine.GetBuffer ( nLineLenght ), nLineLenght ); int nMode = GetDC ( )->SetMapMode ( MM_TEXT ); CSize szSize = GetDC ( )->GetOutputTextExtent ( sLine ); GetDC ( )->SetMapMode ( nMode ); if ( wMarginLeft + szSize.cx + wMarginRight > rcClient.Width ( ) ) { ASSERT ( FALSE ); } }
J'ai même tenté avec le "GetTextExtent" et c'est pareil.
J'ai même vérifier que le font était correcte et effectivement elle est correct.
Donc je ne sais plus quoi faire.
Si quelqu'un à un idée pour résoudre mon problème de taille ou carrement de redimmensionnement de l'édit, je suis preneur.
Merci d'avance.
Partager