2008-10-15 4 views
2

Dans mon programme MFC, j'utilise un séparateur pour créer deux volets. Je veux maintenant diviser une de ces vitres en deux et mettre dans une autre vue, quelqu'un peut me parler à travers comment faire ou me diriger dans la direction d'un code?Division d'un volet déjà divisé (MFC)

Je préférerais le coder moi-même, donc je ne suis pas intéressé par les classes dérivées personnalisées, sauf si elles sont extrêmement basiques.

Merci!

Répondre

3

Dans CMainFrame::OnCreateClient

// Create splitter with 2 rows and 1 col 
m_wndSplitter.CreateStatic(this, 2, 1); 
// Create a view in the top row 
m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CView1), CSize(100, 100), pContext); 
// Create a 2 column splitter that will go in the bottom row of the first 
m_wndSplitter2.CreateStatic(&m_wndSplitter, 1, 2, WS_CHILD|WS_VISIBLE, m_wndSplitter.IdFromRowCol(1, 0)); 
// Create views for the bottom splitter 
m_wndSplitter2.CreateView(0, 0, RUNTIME_CLASS(CView2), CSize(100, 100), pContext); 
m_wndSplitter2.CreateView(0, 1, RUNTIME_CLASS(CView3), CSize(100, 100), pContext); 
... 
+0

Ce code déclenche des exceptions lors de l'exécution. :( – Konrad

+0

Essayez ceci: m_wndSplitter2.CreateStatic (& m_wndSplitter, 1, 2, WS_CHILD | WS_VISIBLE, m_wndSplitter.IdFromRowCol (1, 0)); – Rob

+0

Rob vous êtes génial: D ne peux pas vous dire combien de temps je me bats avec ça aujourd'hui: D – Konrad

0

Je ne suis pas un expert en MFC, mais ne pouvez-vous pas simplement mettre un séparateur dans l'une des vitres que vous avez faites avec le premier séparateur? que la façon dont nous le faisons dans WinForm ....

+0

Non, la division initiale se fait en mainfrm et vues sont associés aux vitres là-bas. – Konrad

Questions connexes