R
Hallo...
Beinahe hätte ich vergessen des Rätsels-Lösung zu meinem Problem zu posten. Möglicherweise schlägt sich ja noch jemand anderes mit einem ähnlichen Problem herum...
Ich poste einfach mal den Code, welcher mir eine Ansicht mit drei Fenstern erstellt, wobei zwei davon übereinander auf der linken Seite des dritten Fensters erzeugt werden.
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/,
CCreateContext* pContext)
{
CRect rect;
GetClientRect(rect);
int ColOneWidth = rect.Width() / 8;
int ColOneHeight = rect.Height() / 2;
int ColTwoWidth = rect.Width() - ColOneWidth;
//Statischer Splitter kreieren
if(!m_wndSplitter.CreateStatic(this, 1, 2)) //1 Zeile und 2 Spalten
{
TRACE0("Failed to create first static splitter\n");
return FALSE;
}
//Beide Spalten des Haupt-Splitters formatieren
m_wndSplitter.SetColumnInfo(0, ColOneWidth, 10);
m_wndSplitter.SetColumnInfo(1, ColTwoWidth, 10);
//Ansicht in zweiter Spalte des Haupt-Splitters erstellen
if(!m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CStandardView),CSize(0, 0), pContext))
{
TRACE0("Failed to create CStandardView");
return FALSE;
}
//Eingenesteter statischer Splitter mit zwei Zeilen und einer Spalte
//in der ersten Spalte des Haupt-Splitters erstellen
if(!m_wndNestedSplitter.CreateStatic(&m_wndSplitter, 2, 1, WS_CHILD | WS_VISIBLE, m_wndSplitter.IdFromRowCol(0, 0)))
{
TRACE0("Failed to create nested static Splitter\n");
return FALSE;
}
//Ansicht in erster Zeile des eingenesteten Splitters erstellen
if(!m_wndNestedSplitter.CreateView(0, 0, RUNTIME_CLASS(CMyLeftTree), CSize(0, rect.bottom / 2), pContext))
{
TRACE0("Failed to create CMyLeftTree");
return FALSE;
}
//Ansicht in zweiter Zeile des eingenesteten Splitters erstellen
if(!m_wndNestedSplitter.CreateView(1, 0, RUNTIME_CLASS(CMyLeftSubTree), CSize(0, 0), pContext))
{
TRACE0("Failed to create CMyLeftSubTree\n");
return FALSE;
}
return TRUE;
}
Folgendes ist mir im Umgang mit CSplitterWnd-Objekten aufgefallen. Wen ein CSplitterWnd-Objekt einmal definiert wurde (bsp. Spaltenbreite des ersten statischen Splitters), muss die Grösse eines in einem solchen Objekt eingebauten zweiten Objektes nicht mehr zwingend angegeben werden, d.h. es kann für die bereits definierte Grösse 0 übergeben werden.
Man liest sich...
Gruss Ratio