单文档切分窗口步骤:
1、在CMainFrame添加下面Protected属性成员变量:
CSplitterWnd m_wndSplitter;
2、在项目中添加相关视图类,这些类将是你自己需要的,即将被显示在切分的窗口中,因此你需要在CMainFrame.cp中Inlcude这些视图的头文件;
注:如果含有对话框的视图类,必须要保证对话框属性是child,否则会出错,还有其它例如除去对话框标题栏什么的;
3、重写CMainFrame类的OnCreateClient成员函数,代码如下:
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// TODO: 在此添加专用代码和/或调用基类
//return CFrameWndEx::OnCreateClient(lpcs, pContext);
if (!m_wndSplitter.CreateStatic(this,1,2))
{
return FALSE;
}
if (! m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CView1),CSize(200,100),pContext))
{
return FALSE;
}
if (!m_wndSplitter.CreateView(0,1,RUNTIME_CLASS(CDlgList),CSize(100,10),pContext))
{
return FALSE;
}
return TRUE;
}
注:其中CView1、CDlgList是我自己创建的含有一个树控件的对话框视图,继承自CFormView。
以上就是整个过程。
解析:
(1)CreateStatic函数,用于静态窗口切分,还有可使用Create动态窗口切分
(2)CreateView将指定视图显示在指定的切分窗口中,可指定切分窗口大小
关于窗口切分的详细参考:http://www.blogjava.net/jasmine214--love/archive/2010/08/28/330123.html