`
阿尔萨斯
  • 浏览: 4169514 次
社区版块
存档分类
最新评论

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的具体函数的用法,建议参考以下两篇文章:
一切是如此的简单和面向对象。
分享到:
评论

相关推荐

    WTL 切分窗口简单实现.rar

    WTL 切分窗口简单实现, 利用 CSplitterWindow // 创建切分窗口容器 CRect lSplitWndRect; GetClientRect(lSplitWndRect); HWND hWnd = mMainSplitWnd.Create(*this, lSplitWndRect, //CWindow::...

    wtlsplitex

    完美WTL的分隔窗口源代码:简介WTL的分隔窗口简单易用,并且可以用在对话框窗口程序中,但我们也发现使用WTL分隔窗口的一些问题,即WTL分隔窗口中的面板必须为其子窗口,这样就无法接受主对话框窗口的TAB控制。...

    WTL简单教程WTL for MFC Programmers

    (例如我工作中的一个原型就使用了了MFC的CFrameWnd,并在其内包含了WTL的CSplitterWindow,在CSplitterWindow中又使用了MFC的CDialogs -- 我并不是为了炫耀什么,只是修改了MFC的代码使之能够使用WTL的分割窗口,它...

    学习WTL 的基础教程

    (例如我工作中的一个原型就使用了了MFC的 CFrameWnd,并在其内包含了WTL的CSplitterWindow,在CSplitterWindow中又使用了MFC的CDialogs -- 我并不是为了炫耀什么,只是修改了MFC的代码使之能够使用WTL的分割窗口,...

    MFC程序员的WTL编程

    (例如我工作中的一个原型就使用了了MFC的CFrameWnd,并在其内包含了WTL的CSplitterWindow,在CSplitterWindow中又使用了MFC的CDialogs -- 我并不是为了炫耀什么,只是修改了MFC的代码使之能够使用WTL的分割窗口,它...

    WTL中文教程CHM版

    将WTL中文教程打包整理成了CHM方便阅读 1. ATL GUI类 2. WTL GUI基类 3. 工具栏和状态栏 4. 对话框和控件 5. 高级的对话框UI类 ...7. 分割窗口 8. 属性单和向导 9. GDI类等 10. 支持拖放操作 chm文件制作比较完美

    WTL 9.1 5270 ReadMe 中文 汉化 中英文对照版 01d

    WTL为众多用户界面元素提供支持,包括框架窗口和弹出窗口、MDI、标准和通用控件、通用对话框、属性表单和属性页、GDI对象、用户界面更新、可滚动窗口、分割窗口、命令条等等。WTL类尽量模板化,使用较少实例数据和较...

    WTL 9.1 5270 Beta 中文 汉化 中英文对照版

    WTL为众多用户界面元素提供支持,包括框架窗口和弹出窗口、MDI、标准和通用控件、通用对话框、属性表单和属性页、GDI对象、用户界面更新、可滚动窗口、分割窗口、命令条等等。WTL类尽量模板化,使用较少实例数据和较...

    VC6风格界面

    ...................\VC设计分割视图通用创建框架.doc ...................\VC通用控件编程之CImageList控件.doc ...................\Visual C++中位图按钮的新颖设计.doc ...................\Visual C++中...

    vc++ 应用源码包_1

    VC++文件分割、合并工具 自绘了Button、CProgressCtrl、CAutoFont。主要操作在CFileSpltDlg中。 vc++写的音乐播放器 VC++制作3D效果的旋转文字特效 VC++注册码加密源程序(含注册机、解密机) 压缩包内有两个源码...

    vc++ 开发实例源码包

    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

    vc++ 应用源码包_2

    VC++文件分割、合并工具 自绘了Button、CProgressCtrl、CAutoFont。主要操作在CFileSpltDlg中。 vc++写的音乐播放器 VC++制作3D效果的旋转文字特效 VC++注册码加密源程序(含注册机、解密机) 压缩包内有两个源码...

    vc++ 应用源码包_6

    VC++文件分割、合并工具 自绘了Button、CProgressCtrl、CAutoFont。主要操作在CFileSpltDlg中。 vc++写的音乐播放器 VC++制作3D效果的旋转文字特效 VC++注册码加密源程序(含注册机、解密机) 压缩包内有两个源码...

    vc++ 应用源码包_5

    VC++文件分割、合并工具 自绘了Button、CProgressCtrl、CAutoFont。主要操作在CFileSpltDlg中。 vc++写的音乐播放器 VC++制作3D效果的旋转文字特效 VC++注册码加密源程序(含注册机、解密机) 压缩包内有两个源码...

    vc++ 应用源码包_3

    VC++文件分割、合并工具 自绘了Button、CProgressCtrl、CAutoFont。主要操作在CFileSpltDlg中。 vc++写的音乐播放器 VC++制作3D效果的旋转文字特效 VC++注册码加密源程序(含注册机、解密机) 压缩包内有两个源码...

Global site tag (gtag.js) - Google Analytics