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