[Frage] SDI Frame mit drei Splittern
-
Hallo Gemeinde,
ich habe folgendes Problem: ich habe ein SDI erstellt und möchte drei Panes erstellen, welche wie folgt aussehen sollen:
______________
|......|................|
|..1..|.................|
||...3............|
|......|................|
|..2..|.................|
||__|So nun mein Problem: Wie müssen denn die Parameter für folgenden code sein ( CreateStatic usw.) - habe da schon rumexperementiert....
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) { m_SplitterWindow.CreateStatic( this, 2, 2 ); m_SplitterWindow.CreateView( 0, 0, RUNTIME_CLASS(CSplitterLeftViewTop), CSize(150,cr.Height()/2), pContext ); m_SplitterWindow.CreateView( 0, 1, RUNTIME_CLASS(CSplitterRight), CSize(150, cr.Height()/2), pContext ); m_SplitterWindow.CreateView( 1, 0, RUNTIME_CLASS(CSplitterLeftViewBottom), CSize(150, cr.Height()/2), pContext ); m_SplitterWindow.CreateView( 1, 1, RUNTIME_CLASS(CSplitterRight), CSize(150, cr.Height()/2), pContext ); // der vierte muss vielleicht weg? return TRUE; }Der Code hier oberhalb funzt - doch leider sieht das so aus:
______________
|......|................|
|..1..|.......3..........|
|___|____|
|......|................|
|..2..|.......4..........|
|||Kann mir jemand helfen, dass es so ausschaut, wie ganz oben gezeichnet.
Ein Idee von mir war, dass ich in der MainFrame-Klasse einen Splitter erstelle und dass der linke Frame wieder ein Splitter ist. Das Problem ist nur dass es bei dem neuen linken Frame keine LinkerFrame::OnCreateClient(...) existiert. Wenn ich die Methode erstelle, dann wird diese Methode gar nicht ausgeführt.
Kann man denn nur gerade Anzahl von Reihen und Spalten zeichnen?
Danke Euch allen!
-
erstelle einen doppelten splitter und teile diesen links nochmal:
// ausn kopf ungetestet
m_wndSplitterMain.CreateStatic(this, 2, 1); m_wndSplitterMain.CreateView(1, 0, RUNTIME_CLASS(CRightView), size, pContext); m_wndSplitterLeft.CreateStatic(&m_wndSplitterMain, 0, 2, WS_CHILD|WS_VISIBLE|WS_BORDER, m_wndSplitterMain.IdFromRowCol(1, 0)); m_wndSplitterLeft.CreateView(0, 0, RUNTIME_CLASS(CLeftTopView), size, pContext); m_wndSplitterLeft.CreateView(0, 1, RUNTIME_CLASS(CLeftBottomView), CSize(0, 0), pContext);-------------- | | | | | | | | | -------------- + (links) -------------- | | -------------- | | -------------- = -------------- | | | ------- | | | | --------------
-
Danke,
werd gleich ausprobieren.Manchmal steht man aber auch aufm Schlauch....