- 11
- 0
- 约4.87千字
- 约 5页
- 2017-06-04 发布于河南
- 举报
MFC静态切分窗口
MFC :静态切分窗口
一、静态切分窗口的实现
实现切分窗口主要应用到类 CSplitterWnd,该类继承于 CWnd,用于提供切
分窗口的功能,即在一个窗口中包含多个窗片 (plane ),每个窗片可以独立控
制,这给界面设计提供了很大的方便。
其实现的方法如下:
1. 在父框架类中定义一个 CSplitterWnd 对象;
2. 重载父框架类的成员函数 CFrameWnd::OnCreateClient ;
3. 在重载函数 OnCreateClient 中调用CSplitterWnd 的成员函数CreateStatic 。
(使用 Create 创建动态切分窗口)
实例:
实现如图 1 所示的切分窗口。
实现方法:
1. 首先我们建立 4 个对话框,ID 分别为 IDD_TREE1、IDD_LIST1、
IDD_TREE2、IDD_LIST2,注意对话框的style 要选child 。
2. 建立 4 个 View 的类,这里我们让这四个 View 的类继承于FormView ,
CList1View 继承于 FormView 关联对话框 IDD_LIST1
CList2View 继承于 FormView 关联对话框 IDD_LIST2
CTree1View 继承于 FormView 关联对话框 IDD_TREE1
CTree2View 继承于 FormView 关联对话框 IDD_TREE2
3. 在 CMainFrame 类中添加两个变量,类型为 CSplitterWnd (关于这类型
的介绍请看MSDN )
CSplitterWnd m_wndSplitter;
CSplitterWnd m_wndSplitter1;
然后在 CMainFrame 类中添加虚函数:
virtual BOOL OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext);
在源文件函数实现添加如下代码:
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// TODO: Add your specialized code here and/or call the base class
CRect cr;
GetWindowRect( cr );
//创建一个静态分栏窗口,分为一行二列
if(m_wndSplitter.CreateStatic(this,1,2) NULL)
return FALSE;
//将TreeView1连接到行列窗格上
m_wndSplitter.CreateView(0,0,RUNTIME_CLASS(TreeView1),CSize(cr.Width()/4,
cr.Height()), pContext);
//将第行列再分开行列
if(m_wndSplitter1.CreateStatic(m_wndSplitter,3,1,WS_CHILD|WS_VISIBLE,
m_wndSplitter.IdFromRowCol(0, 1)) NULL)
return FALSE;
//将ListView1类连接到第二个分栏对象的行列
m_wndSplitter1.CreateView(0,0,RUNTIME_CLASS(ListView1),CSize(3*cr.Width()/4,cr
.Height()/3),pContext);
您可能关注的文档
最近下载
- 2025年广西执法考试题及答案.doc VIP
- 2025年春新课程能力培养七年级数学下册人教版答案.pdf VIP
- 《常见淡水鱼病的诊断及防治》课件.ppt
- 《中国结课件》课件.ppt VIP
- 《药品营销心理学》课程标准.docx VIP
- 干股(虚拟股)分红协议书--最全最标准.doc VIP
- 港澳台华侨生入学考试物理试题真题及答案(2025年).docx VIP
- 2025年春基础训练九年级化学下册人教版答案.pdf VIP
- 2022年-2024年青岛卫健委事业编护理笔试真题.docx VIP
- 建筑工程图集 13SG903-1:混凝土结构常用施工详图(现浇混凝土板、非框架梁配筋构造).pdf VIP
原创力文档

文档评论(0)