IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

Redimensionnement d'un CRichEditCtrl


Sujet :

MFC

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 177
    Par défaut 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 : 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
    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

  2. #2
    Expert confirmé
    Avatar de Mat.M
    Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2006
    Messages
    8 526
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2006
    Messages : 8 526
    Par défaut
    Hello mais quels paramêtres passe-tu au constructeur du RicheditCtrl ?
    Je conseille de regarder dans le MSDN et les méthodes membres de cette classe

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 177
    Par défaut
    Je passe par un Create auquel je passe les parametres suivants:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    dwStyle, rect, this, IDC_IPRICHEDIT
    rect contient la taille de l'objet contenant (et elle est correcte)

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    177
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 177
    Par défaut
    Bon, je viens de comprendre, après un gros moment resté dubitatif, que le problème vient de l'appel à la méthode MoveWindow qui ne se comporte pas de la même façon avec l'objet de type CRichEditCtrl.
    Mais pour le coup, je ne saurais dire pourquoi...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Kylix] Fenêtres non redimensionnables
    Par fred78 dans le forum EDI
    Réponses: 2
    Dernier message: 01/12/2002, 14h08
  2. [VB6] [Interface] Redimensionnement automatique
    Par ychalan dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 30/09/2002, 18h32
  3. redimensionnement d'une JWindow
    Par mbp566 dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 02/08/2002, 03h41
  4. Redimensionnement des Paquets IP sur un Réseau Local
    Par Bonoboo dans le forum Développement
    Réponses: 2
    Dernier message: 12/07/2002, 15h40
  5. Redimensionnement d'une surface
    Par Freakazoid dans le forum DirectX
    Réponses: 4
    Dernier message: 01/07/2002, 22h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo