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 :

Centrer verticalement le texte d'un CEdit


Sujet :

MFC

  1. #1
    Membre régulier Avatar de vanitom
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 327
    Points : 85
    Points
    85
    Par défaut Centrer verticalement le texte d'un CEdit
    Bonjour,

    Comme, c'est noté dans le titre du post, je recherche un moyen de centrer verticalemet le texte d'un CEdit.

    J'ai cherché un peu partout et je n'ai rien trouvé. Donc si quelqu'un à une solution je la prend tout de suite.

    Merci d'avance.

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    salut,
    à l'affichage c'est jouable en reprenant la main sur le paint ,mais en edition ce n'est pas évident...

  3. #3
    Membre régulier Avatar de vanitom
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    327
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 327
    Points : 85
    Points
    85
    Par défaut
    Effectivement c'est pas evident pour l'édition.
    Mais c'est justement ce que je cherche.

  4. #4
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Points : 17 323
    Points
    17 323
    Par défaut
    je t'ai bricolé un truc simple :
    le principe je mets le controle edit dans un autre contrôle ,l'edit etant centré dedans en hauteur ...
    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
     
    /////////////////////////////////////////////////////////////////////////////
    // CNewEdit window
     
    class CNewEdit : public CButton
    {
    // Construction
    public:
        CNewEdit();
     
    // Attributes
    public:
    CEdit m_Edit;
    // Operations
    public:
     
    // Overrides
        // ClassWizard generated virtual function overrides
        //{{AFX_VIRTUAL(CNewEdit)
        protected:
        virtual void PreSubclassWindow();
        virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
        //}}AFX_VIRTUAL
     
    // Implementation
    public:
        virtual ~CNewEdit();
     
        // Generated message map functions
    protected:
        //{{AFX_MSG(CNewEdit)
        afx_msg void OnPaint();
        //}}AFX_MSG
     
        DECLARE_MESSAGE_MAP()
    };
    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
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
     
    // NewEdit.cpp : implementation file
    //
     
    #include "stdafx.h"
    #include "samplesdi.h"
    #include "NewEdit.h"
     
    #ifdef _DEBUG
    #define new DEBUG_NEW
    #undef THIS_FILE
    static char THIS_FILE[] = __FILE__;
    #endif
     
    /////////////////////////////////////////////////////////////////////////////
    // CNewEdit
     
    CNewEdit::CNewEdit()
    {
    }
     
    CNewEdit::~CNewEdit()
    {
    }
     
     
    BEGIN_MESSAGE_MAP(CNewEdit, CButton)
        //{{AFX_MSG_MAP(CNewEdit)
        ON_WM_PAINT()
        //}}AFX_MSG_MAP
    END_MESSAGE_MAP()
     
    /////////////////////////////////////////////////////////////////////////////
    // CNewEdit message handlers
     
    void CNewEdit::PreSubclassWindow() 
    {
        // TODO: Add your specialized code here and/or call the base class    
        CButton::PreSubclassWindow();
        DWORD dwEditStyle = WS_CHILD|WS_VISIBLE| ES_AUTOHSCROLL; //|ES_MULTILINE
     
        CRect Rect;
        GetClientRect(&Rect);    
        CDC *pDC=this->GetDC();
        CFont *pFont=GetFont();
        CFont *pOldFont=pDC->SelectObject(pFont);
     
        CSize size=pDC->GetTextExtent("essai");
     
        pDC->SelectObject(pOldFont);
        this->ReleaseDC(pDC);
     
        Rect.top=((Rect.Height()-size.cy)/2);
        Rect.bottom=Rect.top+size.cy;
        Rect.left+=1;
        Rect.right-=2;
        m_Edit.Create(WS_CHILD | WS_VISIBLE | WS_TABSTOP , Rect, this, GetDlgCtrlID()+1);
        m_Edit.SetFont(pFont);    
    }
     
    BOOL CNewEdit::PreCreateWindow(CREATESTRUCT& cs) 
    {
        // TODO: Add your specialized code here and/or call the base class
     
        return CButton::PreCreateWindow(cs);
    }
     
    void CNewEdit::OnPaint() 
    {
        CPaintDC dc(this); // device context for painting
     
        // TODO: Add your message handler code here
     
            //creation d'un DC en memoire .
        CDC memDC;
        memDC.CreateCompatibleDC( &dc );
     
        CRect rcClip, rcClient;
        dc.GetClipBox( &rcClip );
        GetClientRect(&rcClient);
     
        // seletionne un bitmap sur le DC en memoire
        CBitmap bitmap;
        bitmap.CreateCompatibleBitmap( &dc, rcClient.Width(), rcClient.Height() );
        memDC.SelectObject( &bitmap );    
     
     
        CPen Pen(PS_SOLID ,1,RGB(0,0,0));
        memDC.SelectObject(&Pen);
        memDC.FillRect(rcClient,CBrush::FromHandle((HBRUSH)GetStockObject(WHITE_BRUSH)));
        memDC.Rectangle(rcClient);
     
     
            // ecriture finale du bitmap.
        dc.BitBlt( rcClip.left, rcClip.top, rcClip.Width(), 
               rcClip.Height(), &memDC, rcClip.left, rcClip.top, SRCCOPY );
    }
    tu places un bouton à l'ecran à la place d'un Edit,
    tu associes une variable controle de type CNewEdit sur le contrôle .
    note:

    j'ai fais ça trés rapidement , si ça te convient à toi de paufiner ,modifier etc..
    l'apparence de l'édit est a faire ,j'ai juste dessiné un rectangle ...

Discussions similaires

  1. [CR9] Centrer verticalement le texte
    Par CDRIK dans le forum SAP Crystal Reports
    Réponses: 3
    Dernier message: 22/05/2009, 19h33
  2. Centrer verticalement du text dans un dbgrid
    Par pierrot67 dans le forum Bases de données
    Réponses: 1
    Dernier message: 17/06/2006, 13h05
  3. Réponses: 1
    Dernier message: 03/05/2006, 09h18
  4. [CSS] Centrer verticalement du texte
    Par taly dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 11/04/2006, 13h24
  5. Centrer verticalement un texte dans un Canvas
    Par Ben_Le_Cool dans le forum API, COM et SDKs
    Réponses: 25
    Dernier message: 07/03/2006, 16h54

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