基于对话框的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 ...
随机推荐
- cas与NGINX整合(转)
CAS (5) -- Nginx代理模式下浏览器访问CAS服务器配置详解 标签: 服务器 2015-12-18 15:04 1633人阅读 评论(0) 收藏 举报 分类: 网络(61) 目录( ...
- .NET Core添加项目之间的依赖关系
- 一台电脑存放多个git账户的多个rsa秘钥
未命名.html div.oembedall-githubrepos{border:1px solid #DDD;border-radius:4px;list-style-type:none;marg ...
- ECMAScript 6学习笔记(一):展开运算符
同步发布于:https://mingjiezhang.github.io/(转载请说明此出处). JavaScript是ECMAScript的实现和扩展,ES6标准的制定也为JavaScript加入了 ...
- 如何解决div层被flash遮盖的问题
页面构建中的Flash层会遮挡Div的问题,一般通过设置wmode="transparent" 或wmode="window"就可以解决.不过对于Flash视频 ...
- DevExpress GridControl使用方法总结
一.如何解决单击记录整行选中的问题 View->OptionsBehavior->EditorShowMode 设置为:Click 二.如何新增一条记录 (1).gridView.AddN ...
- How to copy files between sites using JavaScript REST in Office365 / SharePoint 2013
http://techmikael.blogspot.in/2013/07/how-to-copy-files-between-sites-using.html I'm currently playi ...
- JSP Model模式
用JSP开发的Web应用模型可以分为Model1和Model2 对于小型的Web应用,通常可以使用模型1来完成. 模型1可以分为两种方式: 一种是完全使用JSP页面来开发Web应用: 另一种是使用JS ...
- 解决tableViewCell分割线不到左边界的问题
在tableView控制器的.m文件中任何位置加入以下两个方法即可解决 /** * 下面两个方法解决cell分割线不到左边界的问题 */ -(void)viewDidLayoutSubviews { ...
- iOS应用程序开发之应用间的跳转(用着微信等第三方分享登陆)
简介 配置和实现 判断应用启动方式 一.简介 最实际项目开发中,我们难免会遇到需要从一个应用跳转到另一个应用的情况.比如微信分享,实际就是一种应用间的跳转.但是有时候我们需要实现自己的两个应用间的跳转 ...