设为首页 加入收藏

TOP

7.4.2 划分任意子窗口
2013-10-07 00:36:38 来源: 作者: 【 】 浏览:56
Tags:7.4.2划分 任意 窗口

7.4.2  划分任意子窗口

除了上面分割视图的方法以外,还可以划分任意子窗口。划分任意子窗口时也是先调用CreateStatic方法创建静态分割的窗体,然后调用CreateView方法创建子视图,但是不为要分割的子窗口创建视图,而是调用CreateStatic方法继续分割窗体。

例7.3  划分任意子窗口。(实例位置:光盘\TM\sl\7\3)

步骤如下:

(1)创建一个单文档应用程序。

(2)在框架类的头文件中声明CSplitterWnd类对象m_wndSplitter。

(3)重载框架类的OnCreateClient虚方法,在该方法中分割视图窗口。代码如下:

BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, 
CCreateContext* pContext)
{
m_wndSplitter.CreateStatic(this,1,2);      //创建分割窗口
//创建视图
m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(CRandomDivisionView),
CSize(100,200), pContext);
m_ChildWnd.CreateStatic(&m_wndSplitter,2,1,WS_CHILD|WS_VISIBLE,
m_wndSplitter.IdFromRowCol(0,1));     //为子窗口创建分割窗口
m_ChildWnd.CreateView(0,0,RUNTIME_CLASS(CRandomDivisionView),
CSize(100,100),pContext);
m_ChildWnd1.CreateStatic(&m_ChildWnd,1,2,WS_CHILD|WS_VISIBLE,
m_ChildWnd.IdFromRowCol(1,0));      //为子窗口创建分割窗口
m_ChildWnd1.CreateView(0,0,RUNTIME_CLASS(CRandomDivisionView),
CSize(100,100),pContext);
m_ChildWnd2.CreateStatic(&m_ChildWnd1,2,1,WS_CHILD|WS_VISIBLE,
m_ChildWnd1.IdFromRowCol(0,1));     //为子窗口创建分割窗口
m_ChildWnd2.CreateView(0,0,RUNTIME_CLASS(CRandomDivisionView),
CSize(100,100),pContext);
m_ChildWnd3.CreateStatic(&m_ChildWnd2,1,2,WS_CHILD|WS_VISIBLE,
m_ChildWnd2.IdFromRowCol(1,0));     //为子窗口创建分割窗口
m_ChildWnd3.CreateView(0,0,RUNTIME_CLASS(CRandomDivisionView),
CSize(100,100),pContext);
m_ChildWnd3.CreateView(0,1,RUNTIME_CLASS(CRandomDivisionView),
CSize(100,100),pContext);
return TRUE;          //设置返回值
//return CFrameWnd::OnCreateClient(lpcs, pContext);  //不调用基类的方法
}
实例的运行结果如图7.11所示。
 
图7.11  划分任意子窗口
注意:使用CreateView创建视图以后,该窗口将不能使用CreateStatic分割。
【责任编辑:夏书 TEL:(010)68476606】

回书目   上一节   下一节

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇7.1 构建文档/视图应用程序 下一篇7.4.1 简单视图分割

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: