窗口分割
2016-01-12 18:37
197 查看
建立一个单文档MFC应用程序,初始界面是这样的
然后我们想将窗口分成两块,左侧为绘图区,右侧为选择控制区:
可以看到Dialog下面有两个对话框模板,其ID分别为:IDD_ABOUTBOX和IDD_ADDITION_DIALOG1,前者是“关于”对话框的模板,后者是主对话框的模板。ID是资源的唯一标识,我们可以换一个名字,其本质上是一个无符号整数,一般ID代表的整数值由系统定义,我们无需干涉。
IDD_DIALOG1 改为: IDD_新名字
Style 选择Child.
Border 选择 None.
将确定和取消键删除:选择按钮单击右键删除。
关于属性:
1.ID:对话框ID,唯一标识对话框资源,可以修改。
2.Caption:对话框标题。
3.Border:边框类型。
4.Maximize:是否使用最大化按钮。
5.Minimize:是否使用最小化按钮。
6.Style:对话框类型。有三种类型:Overlapped(重叠窗口)、Popup(弹出式窗口)和Child(子窗口)。
命名类名 --- 新类名
基类选择 --- CFormView // CFormView类是用于窗体视图的基类
系统自动生成新类名.cpp和新类名.h两个文档模板。
{
if (!m_wndSplit.CreateStatic(this, 1, 2)) //建立一个一行两列的静态分割窗口
return 0;
if (!m_wndSplit.CreateView(0, 0, pContext->m_pNewViewClass, CSize(650, 100), pContext))
return 0;
if (!m_wndSplit.CreateView(0, 1, RUNTIME_CLASS(新类名),CSize(100, 50), pContext))
return 0;
ShowWindow(SW_SHOWMAXIMIZED);
return TRUE;
}
应用程序窗体分割为两部分,左侧是视图区,右侧为交互
选择区。
然后我们想将窗口分成两块,左侧为绘图区,右侧为选择控制区:
一、资源编辑
1. 选择资源视图。
2、选择资源视图中Dialog选项,按右键弹出Popup菜单;选择插入Dialog选项。
可以看到Dialog下面有两个对话框模板,其ID分别为:IDD_ABOUTBOX和IDD_ADDITION_DIALOG1,前者是“关于”对话框的模板,后者是主对话框的模板。ID是资源的唯一标识,我们可以换一个名字,其本质上是一个无符号整数,一般ID代表的整数值由系统定义,我们无需干涉。
3.在属性窗口中,编辑修改Dialog(对话框)的相关属性。
IDD_DIALOG1 改为: IDD_新名字
Style 选择Child.
Border 选择 None.
将确定和取消键删除:选择按钮单击右键删除。
关于属性:
1.ID:对话框ID,唯一标识对话框资源,可以修改。
2.Caption:对话框标题。
3.Border:边框类型。
4.Maximize:是否使用最大化按钮。
5.Minimize:是否使用最小化按钮。
6.Style:对话框类型。有三种类型:Overlapped(重叠窗口)、Popup(弹出式窗口)和Child(子窗口)。
4.为新资源映射一个类。
选中Dialog,双击左键弹出MFC添加类向导窗口。命名类名 --- 新类名
基类选择 --- CFormView // CFormView类是用于窗体视图的基类
系统自动生成新类名.cpp和新类名.h两个文档模板。
二、分割窗口
1. 重写CMainFrame类的虚函数OnCreateClient()。
选择弹出类向导对话窗口,添加OnCreateClient函数。2. CMainFrame类添加窗体分割条变量
CSplitterWnd m_wndSplit;3. CMainFrame.cpp添加"新类名.h"
4. 在OnCreateClient函数中添加如下代码。
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext){
if (!m_wndSplit.CreateStatic(this, 1, 2)) //建立一个一行两列的静态分割窗口
return 0;
if (!m_wndSplit.CreateView(0, 0, pContext->m_pNewViewClass, CSize(650, 100), pContext))
return 0;
if (!m_wndSplit.CreateView(0, 1, RUNTIME_CLASS(新类名),CSize(100, 50), pContext))
return 0;
ShowWindow(SW_SHOWMAXIMIZED);
return TRUE;
}
5. 编译运行,结果如下:
应用程序窗体分割为两部分,左侧是视图区,右侧为交互
选择区。
相关文章推荐
- Thrift的TBinaryProtocol二进制协议分析
- Linux系统基本操作
- ubuntu14下python3.4安装PIL的步骤
- Educational Codeforces Round 5(C)(DFS+hash)
- debug使用
- android 6.0 and sdk23, when used xx.so has text relocations.
- 160122_孙子兵法_始计
- cocos2dx之lua项目开发中MVC框架的简单应用
- 【转】理解 PHP 依赖注入 | Laravel IoC容器
- 查看一个文件是否支持64位 方法 ,[symbol(s) not found for architecture x86_64]相关
- 数字八
- POJ 3734 Blocks(矩阵优化+DP)
- ElasticSearch 概述
- C++的高级用法
- Mysql 启动慢查询日志 (不用重启)
- 图片比例转换算法
- Struts2与Spring整合
- 一个基于Matlab的简单Gui设计
- Facebook Hacker Cup 2016 Qualification Round 解题报告
- 利用dom4j解析xml--天气预报