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 :
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 );
	}
}
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".
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.