1、CMainFrame增加成员变量:
CSplitterWnd m_wndSplitter;
CSplitterWnd m_wndSplitter1;
2、映射CMainFrame::OnCreateClient函数:
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// 创建一个静态分栏窗口,分为二行一列
if (m_wndSplitter1.CreateStatic(this, 2, 1) == NULL)
{
return FALSE;
}
// 第一行分割为两列
if (m_wndSplitter.CreateStatic(&m_wndSplitter1, 1, 2, WS_CHILD|WS_VISIBLE, m_wndSplitter1.IdFromRowCol(0, 0)) == NULL)
{
return FALSE;
}
// 设置第一行View
m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CToolBarTestView), CSize(200,200), pContext);
m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CToolBarTestView), CSize(600,200), pContext);
// 设置第二行View
m_wndSplitter1.CreateView(1, 0, RUNTIME_CLASS(CToolBarTestView), CSize(20,20), pContext);
// 设置第一行高度
CRect rect;
GetClientRect(&rect);
m_wndSplitter1.SetRowInfo(0, rect.Height() * 2 / 3, 0);
return TRUE;
}
3、获取指定的View实例:
CToolBarTestView* pTestView = (CToolBarTestView*)this->m_wndSplitter.GetPane(0, 1); // 第一行第二列
if (pTestView)
{
return;
}
4、m_wndSplitter.CreateView可创建自定义的各种View,例如:CTreeView、CListView、CRichEditView等等