Redimensionnement d'un CRichEditCtrl
Bonjour à tous!
Je vais avoir besoin des champions sur ce coup là.
Je créé dynamiquement des objets graphiques, comme des CEdit et des CRichEdit
Cependant, là où ce code marche très bien pour le redimensionnement des CEdit, il foire totalement pour les CRichEdit, mais je ne sais absolument pas pourquoi.
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 26 27 28 29 30 31 32 33 34 35 36 37 38
|
void CInPlaceEdit::OnChar(UINT nChar, UINT nRepCnt, UINT nFlags)
{
CEditEx::OnChar(nChar, nRepCnt, nFlags);
// Resize edit control if needed
// Get text extent
CString str;
GetWindowText(str);
CWindowDC dc(this);
CFont *pFont = GetParent()->GetFont();
CFont *pFontDC = dc.SelectObject( pFont );
CSize size = dc.GetTextExtent( str );
dc.SelectObject( pFontDC );
size.cx += 5; // add some extra buffer
// Get client rect
CRect rect, parentrect;
GetClientRect( &rect );
GetParent()->GetClientRect( &parentrect );
// Transform rect to parent coordinates
ClientToScreen( &rect );
GetParent()->ScreenToClient( &rect );
// Check whether control needs to be resized
// and whether there is space to grow
if( size.cx > rect.Width() )
{
if( size.cx + rect.left < parentrect.right )
rect.right = rect.left + size.cx;
else
rect.right = parentrect.right;
MoveWindow( &rect );
}
} |
J'ai l'impression que l'objet CRichEdit inclus une bordure qui, lors du redimensionnement, donne un résultat débile.
De plus, il est possible que le soucis vienne de l'apparition des scrolls bar dans le CRichEdit.
Je ne sais pas si je suis clair, mais pour faire simple, je voudrais que la taille de mon CRichEdit s'adapte à la taille du contenu texte.
Merci d'avance