创建拆分窗口
制作拆分窗口的步骤很简单,主要步骤如下:
(1)创建多文档用于界面应用程序
(2)单击3次Next按钮,显示应用程序向导的第4步
(3)单击Advanced按钮,显示高级选项对话框
(4)选择Window Style选项卡,选中Use split window复选框
(5)close->Finish
(6)在CChildFrame类中定义两个变量
CSplitterWnd m_wndSplitter1;
CSplitterWnd m_wndSplitter2;
(7)CChildFrame::OnCreateClient( LPCREATESTRUCT /*lpcs*/,CCreateContext* pContext)函数中修改为如下代码:
{
CRect rc;
GetClientRect(&rc);
//设置各个窗口的大小
CSize Testsize(rc.Width(),rc.Height()/2);
CSize Test2(rc.Width()/3,rc.Height()/2);
CSize Showsize(rc.Width()/3*2,rc.Height()/2);
if(m_wndSplitter1.CreateStatic(this,2,1)==NULL)
return FALSE;
m_wndSplitter1.CreateView(0,0,RUNTIME_CLASS(CTestView),Testsize, pContext);
//将第1行0列再分开1行2列
if(m_wndSplitter2.CreateStatic(&m_wndSplitter1,1,2,
WS_CHILD|WS_VISIBLE,m_wndSplitter1.IdFromRowCol(1, 0))==NULL)
return FALSE;
//将CTest2类连接到第二个分栏对象的0行0列
m_wndSplitter2.CreateView(0,0,RUNTIME_CLASS(CTest2),Test2,pContext);
//将CDV类连接到第二个分栏对象的0行1列
m_wndSplitter2.CreateView(0,1,RUNTIME_CLASS(CDV),Showsize,pContext);
//return CFrameWnd::OnCreateClient(lpcs, pContext);
return TRUE;
}
运行之后得到如下界面
注:
1.CDV是插入一个dialog,其style修改为child,border为none,定义一个CDV类其基类为FormView
2.基于单文档的应用程序应当在CMainFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/, CCreateContext* pContext)
中进行修改
3.StaticSplitter中的子窗口可以是不同类的,但DynamicSplitter中的子窗口必须是同一
类的。
2009-04-04