Je ne trouve rien la dessus...
Comment fait on pour alligner le texte d'un CEdit, ou CStatic ou....
dynamiquementbiensur, je ne parle pas de la propriété dans l'editeur de ressource.
Je ne trouve rien la dessus...
Comment fait on pour alligner le texte d'un CEdit, ou CStatic ou....
dynamiquementbiensur, je ne parle pas de la propriété dans l'editeur de ressource.
en modifiant le style (ES_LEFT, ES_RIGHT, ou ES_CENTER)
et en utilisant:Envoyé par nico-pyright(c)
http://c.developpez.com/faq/vc/?page=CWnd#ModifyStyle
![]()
j'etais allé dans la faqmais je n'avais pas trouvé
![]()
, et je me fais taper sur les doigts
![]()
![]()
![]()
![]()
quoi qu'il en soit, je n'arrive pas a faire fonctionner cette modification de style, pourtant ca n'a pas l'air si compliqué.
voici un extrait de mon header :
et mon code source que j'ai simplifié pour vous biensur
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 // Fonctions générées de la table des messages protected: DECLARE_MESSAGE_MAP() public: CEdit m_edit_test; public: afx_msg void OnBnClickedButtonAlignGauche(); public: afx_msg void OnBnClickedButtonAlignCentre(); public: afx_msg void OnBnClickedButtonAlignDrotie();
alors j'ai meme essayé
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 // essaiOCX1View.cpp : implémentation de la classe CessaiOCX1View // #include "stdafx.h" #include "essaiOCX1.h" #include "essaiOCX1Doc.h" #include "essaiOCX1View.h" IMPLEMENT_DYNCREATE(CessaiOCX1View, CFormView) BEGIN_MESSAGE_MAP(CessaiOCX1View, CFormView) ON_BN_CLICKED(IDC_BUTTON_ALIGN_GAUCHE, &CessaiOCX1View::OnBnClickedButtonAlignGauche) ON_BN_CLICKED(IDC_BUTTON_ALIGN_CENTRE, &CessaiOCX1View::OnBnClickedButtonAlignCentre) ON_BN_CLICKED(IDC_BUTTON_ALIGN_DROTIE, &CessaiOCX1View::OnBnClickedButtonAlignDrotie) END_MESSAGE_MAP() void CessaiOCX1View::DoDataExchange(CDataExchange* pDX) { CFormView::DoDataExchange(pDX); DDX_Control(pDX, IDC_EDIT1, m_edit_test); } void CessaiOCX1View::OnBnClickedButtonAlignGauche() { UpdateData(TRUE); m_edit_test.ModifyStyle(0,ES_LEFT); UpdateData(FALSE); } void CessaiOCX1View::OnBnClickedButtonAlignCentre() { UpdateData(TRUE); m_edit_test.ModifyStyle(0,ES_CENTER); UpdateData(FALSE); } void CessaiOCX1View::OnBnClickedButtonAlignDrotie() { UpdateData(TRUE); m_edit_test.ModifyStyle(0,ES_RIGHT); UpdateData(FALSE); }pour soustraire les mauvais modes a ajouter le bon, mais ca ne change rien
Code : Sélectionner tout - Visualiser dans une fenêtre à part m_edit_test.ModifyStyle(ES_RIGHT | ES_CENTER ,ES_LEFT);![]()
j'aurai oublié de faire quelque chose?
il semblerait que le probleme soit le meme qu'avec une listbox :
le changement de certains styles affectant l'apparence ne sont pas effectifs apres la creation du control.
solution recreer un control avec le nouveau style:
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 void ModifyEditStyle(CEdit &rEdit,DWORD dwRemove,DWORD dwAdd) { rEdit.ModifyStyle(dwRemove,dwAdd); UINT nID=rEdit.GetDlgCtrlID(); CRect rect; rEdit.GetWindowRect(&rect); CWnd *pParent=rEdit.GetParent(); pParent->ScreenToClient(&rect); DWORD dwExEditStyle =rEdit.GetExStyle( ); DWORD dwEditStyle =rEdit.GetStyle( ); CString str; rEdit.GetWindowText(str); HWND hwnd=::CreateWindowEx( dwExEditStyle, TEXT("EDIT"), // Class name str, // Window text dwEditStyle, // Window style rect.left, // x coordinate of the upper-left corner rect.top, // y coordinate of the upper-left corner rect.Width(), // Width of the edit control window rect.Height(), // Height of the edit control window pParent->GetSafeHwnd(), // Window handle of parent window (HMENU)(nID), // Control identifier AfxGetInstanceHandle(), // Instance handle NULL); // Specify NULL for this parameter when // creating a control ::SendMessage(hwnd, WM_SETFONT, (WPARAM)::SendMessage(rEdit.GetSafeHwnd(), WM_GETFONT, 0, 0),TRUE); rEdit.DestroyWindow(); rEdit.SubclassWindow(hwnd); } //................ void CessaiOCX1View::OnBnClickedButtonAlignDrotie() { ModifyEditStyle( m_edit_test, ES_LEFT | ES_CENTER , ES_RIGHT); }![]()
Genial Farscape, elle a l'air carrée ta fonction dis moi, je vais de suite la tester. Merci !
Pour info, j'ai fais mes essais sous MFC 7.1 et MFC 8.0, et sous 7.1 j'avais fait le modify style dans la fonction create , mais bon ce code je ne l'ai pas sur moi, il est au boulot, je regarderai ca de plus pret lundi et vous dirai...
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