划分任意子窗口

划分任意子窗口

除了上面分割视图的方法以外,还可以划分任意子窗口。划分任意子窗口时也是先调用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);  //不调用基类的方法
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值