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.
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.
salut,
à l'affichage c'est jouable en reprenant la main sur le paint ,mais en edition ce n'est pas évident...
Ce qui est affirmé sans preuve peut être nié sans preuve Euclide.
Les conversions numériques en C,C++,C++/CLI
DLL d'extensions : écriture d'un plug-in de classe
Démarrer avec les MFC 2/2
Création d'un ActiveX MFC
Intégration d'une imprimante PDF pour éditions automatisées
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
Démarrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
Effectivement c'est pas evident pour l'édition.
Mais c'est justement ce que je cherche.
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() };tu places un bouton à l'ecran à la place d'un Edit,
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 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 ...
Ce qui est affirmé sans preuve peut être nié sans preuve Euclide.
Les conversions numériques en C,C++,C++/CLI
DLL d'extensions : écriture d'un plug-in de classe
Démarrer avec les MFC 2/2
Création d'un ActiveX MFC
Intégration d'une imprimante PDF pour éditions automatisées
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
Démarrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager