WTL分割窗口

 
WTL提供了3个类用来分隔窗口:CSplitterImpl、 CSplitterWindowImpl、CSplitterWindowT。
CSplitterImpl类实现了最主要的分割窗口所需要的函数。
CSplitterWindowImpl继承了 CSplitterImpl类,它实现了一个什么都不做的OnEraseBackground函数,还实现了一个OnSize函数,该函数可以自动调整分割窗口的客户区大小。通常情况下,我们可以直接使用CSplitterWindowImpl类作为我们窗口的父类,如果这两个函数的行为达不到我们的要求,我们可以改写继承自CSplitterImpl类的消息处理函数。
CSplitterWindowT类继承了 CSplitterWindowImpl类,并注册窗口类的名称为—“ WTL_SplitterWindow”,还有就是提供了两个类型定义:
typedef CSplitterWindowT<true>    CSplitterWindow;// 垂直分割
typedef CSplitterWindowT<false>   CHorSplitterWindow;// 水平分割
    下面我们使用 CSplitterWindow类型来创建垂直分割窗口,然后左边窗格为TreeView,右边为普通的View.
    在框架窗口中定义三个成员变量:
CSplitterWindow m_splitter;
CLeftTreeView m_treeView;
     CRightView m_rightView;
 
         在框架窗口的OnCreate函数中,添加如下代码:
/
     const DWORD dwSplitStyle = WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN | WS_CLIPSIBLINGS;
     const DWORD dwSplitExStyle = WS_EX_CLIENTEDGE;
     m_hWndClient=m_splitter.Create(m_hWnd,rcDefault,NULL,dwSplitStyle,dwSplitExStyle);
     // Create a treeview based on m_splitter
     m_treeView.Create ( m_splitter, rcDefault );
     // Create a view based on m_splitter
     m_rightView.Create( m_splitter,rcDefault);
      // set the left and right view
     m_splitter.SetSplitterPanes(m_treeView,m_rightView);
     UpdateLayout();
     m_splitter.SetSplitterPos(200);
         
关于CSplitterWindow的具体函数的用法,建议参考以下两篇文章:
         一切是如此的简单和面向对象。
 

转载于:https://www.cnblogs.com/believeit/archive/2007/07/18/2183638.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值