m fc 静态分割窗口的方法 本文主要是对MFC 中CSplitterWnd 的用法做个简要介绍
我找了很久相关资料都没有找到适合新手的相关文章
希望本文能够帮助有着类似痛苦经历的兄弟
背景 分割窗体就是把一个窗体分割成多个面板,如图1 那样,或者像是迅雷那样
面板就是放各种控件或视图的容器
分割窗体有两种形式,静态和动态
今天讲的只涉及到静态的,因为动态的要复杂些
两种形式的区别在于动态的可以收拢和展开,静态的则不能
代码指南 0、建立项目 打开VS2008,新建项目,选择 MFC,MFC 应用程序
图2 如上图所示,设置好之后单击“完成”
1、定义变量 如图4,在 MainFrm
h 中添加变量 CSplitterWnd splitter 和 BOOL isInit
布尔变量 isInit用来管理分割窗体的状态,用来判断是否已经分割过了
splitter 是用来把窗体分割成图1 那样子
另外,在 MainFrm的构造函数中,把 isInit设置为 FALSE
图3 图 4 技巧:用惯了VC#的智能感知,很不习惯VC 里面没有智能感知
不过据我所知早在VC6 里面就有个快捷键 Alt+→ 来实现类似智能感知的功能,如图3 中,输入 is 后,同时按下Alt + →这两个键就出现了供选择变量、方法、宏等的列表,继续输入 in 后,isInit就出来了
2、分割窗体 分割窗体的动作应该在主窗体创建客户区的时候执行
在MainFrm 中对 OnCreateClient消息进行重写就可以达到我们的目的
在VC2008 中,单击“视图”,“类视图”,选中CMainFrm,右键,选择“属性”,如图5
图5 在“属性”窗口右上选择“重写”,如图6
就是“闪电”右边的右边那个
图6 向下拉动滚动条,找到OnCreateClient,选择 OnCreateCl