基于对话框的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 ...
随机推荐
- u-boot中nandflash初始化流程分析(转)
u-boot中nandflash初始化流程分析(转) 原文地址http://zhuairlunjj.blog.163.com/blog/static/80050945201092011249136/ ...
- ThreadLocal解决线程安全问题
一.线程安全问题产生的原因 线程安全问题都是由全局变量及静态变量引起的 二.线程安全问题 SimpleDateFormate sdf = new SimpleDateFormat();使用sdf.pa ...
- 关于antlr包删除问题
在建这个网站,用户登录的时候,涉及查询问题,然后就出现了java.lang.NoSuchMethodError: antlr.collections.AST.getLine()I错误,我一脸蒙逼,后来 ...
- Automapper扩展方法
问题描述 系统中实现了一个自定义的PagedList /// <summary> /// Paged list interface /// </summary> public ...
- CentOS下apache绑定域名
本文主要介绍在CentOS下apache绑定域名以及apache绑定多个域名,首先要找到apache的配置文件httpd.conf的位置.CentOS操作系统一般在 /etc/httpd/conf 下 ...
- python基础之正则表达式。
简介 就其本质而言,正则表达式是内嵌在python内,由re模块实现,小型的专业化语言,最后由c写的匹配引擎执行.正则表达式(regular expression)描述了一种字符串匹配的模式,可以用来 ...
- .NET破解之100%营销QQ辅助软件【更新】
应网友要求,更新一个以前的版本,效果如下: 更改方法 修改一:更改对象的可访问性 Assembly: RWXComLibrary, Version=2.1.0.3 Name: RWXComLibrar ...
- SharePoint 2013 中自定义WCF服务
在使用SharePoint2013的时候,如果其他客户端 API 的组合不足,可以通过自定义 Web 服务扩展 SharePoint.默认情况下,SharePoint 2013 不仅支持创建自定义 A ...
- Force.com微信开发系列(三)申请测试账号及回复图文消息
Force.com除了简单的文本消息回复外,还能回复图文并茂的消息.能回复音乐或者视频.能对用户发来的语音进行识别.能够搜集用户的地理位置信息并提供相应的内容或服务等,本文将对这些技能一一展开说明,在 ...
- WebRTC for UWP
首先还是简单的介绍下webRTC吧: WebRTC,名称源自网页实时通信(Web Real-Time Communication)的缩写,是一个支持网页浏览器进行实时语音对话或视频对话的技术,是谷歌2 ...