Modifier la taille d'un Edit en fonction du texte
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:
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.