基于对话框的MFC应用程序基本结构
新建一个基于对话框的MFC应用程序,假设命名为 Test:则该应用程序在刚创建的时候,有4个非常重要的文件和3个类:
| 4个非常重要的文件 | |
|
1、Test.h 2、Test.cpp |
(应用程序类头文件) (应用程序类实现文件) |
|
3、TestDlg.h 4、TestDlg.cpp |
(对话框类头文件) (对话框类实现文件) |
| 类名 | 定义所在位置 | 类的实现代码所在位置 |
| CTestApp | Test.h | Test.cpp |
| CTestDlg | TestDlg.h | TestDlg.cpp |
| CAboutDlg | TestDlg.cpp | TestDlg.cpp |
每个文件中的内容:
|
1、 Test.h: |
(1)#pragma once + 非活动预处理 + 各种包含(resource.h + 后续各种类的头文件); (2)CTestApp类的定义(构造函数、重写InitInstance函数,声明消息映射表); (3)extern CTestApp theApp(声明了一个应用程序对象); |
|
2、 Test.cpp: |
(1)各种包含头文件(stdafx.h + Test.h + TestDlg.h)+ 活动预处理; (2)消息映射表(BEGIN~END); (3)应用程序类构造函数:CTestApp(); (4)声明唯一的一个CTestApp对象; (5)CTestApp初始化函数:InitInstance(); |
|
3、 TestDlg.h: |
(1)#pragma once + 各种包含(afxwin.h + 后续的各种类的头文件); (2)CTestDlg类定义(关联的对话框ID + HICON m_hIcon +构造+ DoDataExchange +声明消 息映射函数(OnInitDialog+OnSysCommand+OnPaint+OnQueryDragIcon)+ 声明消息映射表); |
|
4、 TestDlg.cpp: |
(1)各种包含头文件(stdafx.h + afxdialogex.h + Test.h + TestDlg.h) + 活动预处理; (2)CAboutDlg类的定义(关联的对话框ID + 构造 + DoDataExchange + 声明消息映射表)+ 实现(构造 + DoDataExchange + 消息映射表BEGIN~END); (3)CTestDlg类的实现(构造 + DoDataExchange + 消息映射表BEGIN~END); (表中有3个消息ON_WM_SYSCOMMAND + ON_WM_PAINT + ON_WM_QUERYDRAGICON) (4)CTestDlg消息处理程序:(消息处理程序对应消息映射表中的消息) OnInitDialog + OnSysCommand + OnPaint + OnQueryDragIcon。 |
基于对话框的MFC应用程序基本结构的更多相关文章
- VS中基于对话框的MFC利用换肤改变边框颜色及格式
第一版本: http://ishare.iask.sina.com.cn/f/13836420.html?from=like 2. http://www.cnblogs.com/phinecos/ar ...
- 如何在VS2010的VC++ 基于对话框的MFC程序中添加菜单
方法1:亲测 成功 转载自https://social.msdn.microsoft.com/Forums/vstudio/zh-CN/48338f6b-e5d9-4c0c-8b17-05ca3ef ...
- VS2008基于对话框的MFC上位机串口通信(C++实现)简单例程
首先,在 vs2008 环境下创建 MFC 运用程序 设置项目名称为 ComTest(这个地方随意命名,根据个人习惯),点击确定后,点击下一步 出现如下界面 选择"基于对话框"模式 ...
- 如何将基于对话框的MFC工程改成基于BCG的
1.stdafx.h 加入如下内容.BCGCBProInc.h间接导入了lib. 2.应用程序类的父类由CWinApp改成CBCGPWinApp.构造函数增加如下代码: 3.对话框的父类有CDialo ...
- 给基于对话框的MFC程序添加状态栏并实时显示时间
转载自丝雪儿 1.首先在string table 里添加两个字串,ID分别为IDS_INDICATOR_MESSAGE and IDS_INDICATOR_TIME 2.在你的 dlg.h 类里面加个 ...
- 基于对话框的Opengl框架
转自:http://blog.csdn.net/longxiaoshi/article/details/8238933 12-11-29 14:55 1198人阅读 评论(6) 收藏 举报 分类: ...
- MFC中在基于对话框的窗体中使用CFileDialog导致菜单栏变灰的解决方案
CSDN的博客编辑器实在是难用……转战博客园 直接把CSDN发的搬过来了 ————————————————————————————我是分割线———————————————————————————— 第 ...
- 2、创建MFC应用程序——基于对话框,时间计时器
使用计时器更新MFC界面时间,频率1s. 文件——新建项目——MFC应用程序,下一步,选择基于对话框,其他默认,完成. 双击窗体(或者鼠标右键)进入类向导,自动创建Ontimer()函数 void C ...
- VS2013 MFC基于对话框编程
前言一直利用Qt库做Ui设计,但针对于一些MFC项目,掌握一些必要的MFC开发技巧还是很有必要的.这篇博客里就将自己所学的一些MFC浅显知识记录一下,方便今后的学习.博客里只记录关键步骤. 一.新建M ...
随机推荐
- PHP使用SnowFlake算法生成唯一ID
前言:最近需要做一套CMS系统,由于功能比较单一,而且要求灵活,所以放弃了WP这样的成熟系统,自己做一套相对简单一点的.文章的详情页URL想要做成url伪静态的格式即xxx.html 其中xxx考虑过 ...
- Python基础(一),Day1
python的安装 python2.x与3.x的部分区别 第一个python程序 变量 字符编码 注释 格式化字符串 用户输入 常用的模块初始 if判断 循环语句 作业 1.python的安装 可以在 ...
- java.sql.SQLException: null, message from server: “Host ‘xxx’ is not allowed to connect
java.sql.SQLException: null, message from server: “Host ‘xxx’ is not allowed to connect 2014年06月29日 ...
- mysql下一个版本应该且实现并不复杂增加的常用功能
1.innodb的auto_increment应该在参考oracle的实现方式,定期持久化: 我们目前遇到个问题,出于性能考虑,我们每天会把当天处理完成的数据归到另外一张历史表,并清空,同时有可能会重 ...
- jQuery Flickerplate 幻灯片
Flickerplate 是个轻量级 jQuery 插件,大小仅为 12 kb.它允许用户点击鼠标然后转换内容,非常容易使用,响应式,支持触摸设备 在线实例 默认 圆点导航位置 动画方式 深色主题 H ...
- 移动端H5---页面适配问题详谈(一)
一.前言 昨天唠叨了哈没用的,今天说点有用的把.先说一下响应式布局吧,我一直认为响应式布局的分项目,一下布局简单得项目做响应式还是可以可以得.例如博客.后台管理系统等.但是有些会认为响应式很牛逼,尤其 ...
- 【DNN】C#中类的一些特性标注
[AttributeUsage] 其实AttributeUsage类就是描述了一个定制特性如和被使用. C# AttributeUsage的使用要明白: AttributeUsage有三个属性,我们可 ...
- Upgrade custom workflow in SharePoint
Experience comes when you give a try or do something, I worked in to many SharePoint development pro ...
- Java或Android开发中,去掉块注释格式化后每行出现的星号(*)的解决方案。(Eclipse)
找到子项,在 Window->Prefrences->Java->Code Style->Formatter,点击New新建 Active profile,然后在Comment ...
- UITableView小知识点总结
1.UITableView去除空的cell,多余不用的 在viewdidload方法里加上这一句即可 self.tableView.tableFooterView = [[UIView alloc] ...