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 切分窗口简单实现, 利用 CSplitterWindow // 创建切分窗口容器 CRect lSplitWndRect; GetClientRect(lSplitWndRect); HWND hWnd = mMainSplitWnd.Create(*this, lSplitWndRect, //CWindow::...
完美WTL的分隔窗口源代码:简介WTL的分隔窗口简单易用,并且可以用在对话框窗口程序中,但我们也发现使用WTL分隔窗口的一些问题,即WTL分隔窗口中的面板必须为其子窗口,这样就无法接受主对话框窗口的TAB控制。...
(例如我工作中的一个原型就使用了了MFC的CFrameWnd,并在其内包含了WTL的CSplitterWindow,在CSplitterWindow中又使用了MFC的CDialogs -- 我并不是为了炫耀什么,只是修改了MFC的代码使之能够使用WTL的分割窗口,它...
(例如我工作中的一个原型就使用了了MFC的 CFrameWnd,并在其内包含了WTL的CSplitterWindow,在CSplitterWindow中又使用了MFC的CDialogs -- 我并不是为了炫耀什么,只是修改了MFC的代码使之能够使用WTL的分割窗口,...
(例如我工作中的一个原型就使用了了MFC的CFrameWnd,并在其内包含了WTL的CSplitterWindow,在CSplitterWindow中又使用了MFC的CDialogs -- 我并不是为了炫耀什么,只是修改了MFC的代码使之能够使用WTL的分割窗口,它...
将WTL中文教程打包整理成了CHM方便阅读 1. ATL GUI类 2. WTL GUI基类 3. 工具栏和状态栏 4. 对话框和控件 5. 高级的对话框UI类 ...7. 分割窗口 8. 属性单和向导 9. GDI类等 10. 支持拖放操作 chm文件制作比较完美
WTL为众多用户界面元素提供支持,包括框架窗口和弹出窗口、MDI、标准和通用控件、通用对话框、属性表单和属性页、GDI对象、用户界面更新、可滚动窗口、分割窗口、命令条等等。WTL类尽量模板化,使用较少实例数据和较...
WTL为众多用户界面元素提供支持,包括框架窗口和弹出窗口、MDI、标准和通用控件、通用对话框、属性表单和属性页、GDI对象、用户界面更新、可滚动窗口、分割窗口、命令条等等。WTL类尽量模板化,使用较少实例数据和较...
...................\VC设计分割视图通用创建框架.doc ...................\VC通用控件编程之CImageList控件.doc ...................\Visual C++中位图按钮的新颖设计.doc ...................\Visual C++中...
VC++文件分割、合并工具 自绘了Button、CProgressCtrl、CAutoFont。主要操作在CFileSpltDlg中。 vc++写的音乐播放器 VC++制作3D效果的旋转文字特效 VC++注册码加密源程序(含注册机、解密机) 压缩包内有两个源码...
内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...
VC++文件分割、合并工具 自绘了Button、CProgressCtrl、CAutoFont。主要操作在CFileSpltDlg中。 vc++写的音乐播放器 VC++制作3D效果的旋转文字特效 VC++注册码加密源程序(含注册机、解密机) 压缩包内有两个源码...
VC++文件分割、合并工具 自绘了Button、CProgressCtrl、CAutoFont。主要操作在CFileSpltDlg中。 vc++写的音乐播放器 VC++制作3D效果的旋转文字特效 VC++注册码加密源程序(含注册机、解密机) 压缩包内有两个源码...
VC++文件分割、合并工具 自绘了Button、CProgressCtrl、CAutoFont。主要操作在CFileSpltDlg中。 vc++写的音乐播放器 VC++制作3D效果的旋转文字特效 VC++注册码加密源程序(含注册机、解密机) 压缩包内有两个源码...
VC++文件分割、合并工具 自绘了Button、CProgressCtrl、CAutoFont。主要操作在CFileSpltDlg中。 vc++写的音乐播放器 VC++制作3D效果的旋转文字特效 VC++注册码加密源程序(含注册机、解密机) 压缩包内有两个源码...