Salut,
J'utilise les splitters pour avoir dans ma fenetre une vue et un formulaire. J'aimerai bloquer la barre du splitter (qu'on ne puisse pas la deplacer avec la souris) et r�duire son �paisseur.
Merci.
Toune
Salut,
J'utilise les splitters pour avoir dans ma fenetre une vue et un formulaire. J'aimerai bloquer la barre du splitter (qu'on ne puisse pas la deplacer avec la souris) et r�duire son �paisseur.
Merci.
Toune
salut,
pour bloquer le splitter :
il faut faire une classe deriv�e de CSplitterWnd et surcharg�e la fonction:
pour l'epaisseur je ne suis pas sur que ce soit possible directement il faudra certainement reprendre la main sur le dessin voir OnDrawSplitter .
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7
8
9
10 class CSplitterWndEx : public CSplitterWnd { // Construction public: CSplitterWndEx(); // Attributes public: virtual void StartTracking(int ht){return ;}
![]()
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++.
Salut,
Le blocage de la barre du splitter marche mais on a toujours le changement du curseur de la souris indiquant la possibilit� de d�placer cette barre (donc c'est pas terrible). Pour le changement d'�paisseur de la barre j'ai regard� comme tu as dis OnDrawSplitter mais �a pose des probl�mes d'affichages et au mieux j'arrive a effacer la barre ou � garder la m�me �paisseur (donc encore pas terrible).
J'aimerai donc savoir si il y a un autre moyen (que les splitter) pour pouvoir cr�er une interface ayant une partie vue (view) et une autre partie formulaire (form).
Merci.
Toune.
tu baisses bien vite les bras![]()
pour le splitter fin essaye de mettre �a dans le constructeur de la nouvelle classe:
pour le curseur �a doit pas etre dur de le courcircuite .
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7 m_cxSplitter=PANE_BORDER; // = 1 m_cySplitter=PANE_BORDER; // = 1 m_cxBorderShare=PANE_SHARE; // = 0 m_cyBorderShare=PANE_SHARE; // = 0 m_cxSplitterGap=PANE_GAP; // = 1 m_cySplitterGap=PANE_GAP; // = 1
![]()
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++.
ben il te suffit dans cette classe de surcharger l'�venement OnSetCUrsor:
Code : S�lectionner tout - Visualiser dans une fen�tre � part
1
2
3
4
5
6
7 CTaClasseSplitterWnd::OnSetCursor(pWnd, nHitTest, message) { if (!m_bBarLocked) {return CWnd::OnSetCursor(pWnd, nHitTest, message);} return CTaClasseSplitterWnd::OnSetCursor(pWnd, nHitTest, message); }
bien la classe definitive:
utilisation dans CMainFrame:
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 #define PANE_BORDER 1 #define PANE_SHARE 0 #define PANE_GAP 1 class CSplitterWndEx : public CSplitterWnd { // Construction public: CSplitterWndEx() { m_bExTracking=true; } void SetThinFrame() { m_cxSplitter=PANE_BORDER; m_cySplitter=PANE_BORDER; m_cxBorderShare=PANE_SHARE; m_cyBorderShare=PANE_SHARE; m_cxSplitterGap=PANE_GAP; m_cySplitterGap=PANE_GAP; } // Operations public: void SetTracking(bool bEnable=true){m_bExTracking=bEnable;} virtual void StartTracking(int ht) { if(!m_bExTracking) return ; CSplitterWnd::StartTracking(ht); } // Overrides // ClassWizard generated virtual function overrides //{{AFX_VIRTUAL(CSplitterWndEx) public: //}}AFX_VIRTUAL // Attributes public: bool m_bExTracking; // Generated message map functions protected: //{{AFX_MSG(CSplitterWndEx) afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message); afx_msg void OnMouseMove(UINT nFlags, CPoint point); //}}AFX_MSG DECLARE_MESSAGE_MAP() }; // .cpp BEGIN_MESSAGE_MAP(CSplitterWndEx, CSplitterWnd) //{{AFX_MSG_MAP(CSplitterWndEx) ON_WM_SETCURSOR() ON_WM_MOUSEMOVE() //}}AFX_MSG_MAP END_MESSAGE_MAP() //------------------------------------------------- BOOL CSplitterWndEx::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) { // TODO: Add your message handler code here and/or call default if(!m_bExTracking) return FALSE; return CSplitterWnd::OnSetCursor(pWnd, nHitTest, message); } //--------------------------------------- void CSplitterWndEx::OnMouseMove(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default if(!m_bExTracking) return ; CSplitterWnd::OnMouseMove(nFlags, point); }
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 BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) { // TODO: Add your specialized code here and/or call the base class m_wndSplitter.SetThinFrame(); // bordure fine m_wndSplitter.SetTracking(false);// pas de tracking. if (!m_wndSplitter.CreateStatic(this, 1, 2)) return FALSE; if (!m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CSdiSplitterView), CSize(100, 100), pContext) || !m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CMyFormView), CSize(100, 100), pContext)) { m_wndSplitter.DestroyWindow(); return FALSE; } return TRUE; }![]()
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++.
Partager