建立新工程

打开visual studio,我这里用的是2017,其他版本的创建类似
一个基于对话框的简单MFC程序分析

这里默认已安装MFC板块,创建名为“test”的MFC应用程序
一个基于对话框的简单MFC程序分析
一个基于对话框的简单MFC程序分析
创建基于对话框的MFC程序除了在第二个窗口中需要勾选“基于对话框”外,其余的默认即可
一个基于对话框的简单MFC程序分析
一个基于对话框的简单MFC程序分析
一个基于对话框的简单MFC程序分析
一个基于对话框的简单MFC程序分析
一个基于对话框的简单MFC程序分析
至此一个基于对话框的MFC程序创建完成

程序中对象类的关系

程序创建后,真正需要我们关心的,其实就两个文件,其他的都是vs提供的组件,即test.cpp和testDlg.cpp两个文件
一个基于对话框的简单MFC程序分析
在ReadMe.txt文件中详细说明了各个文件的具体作用
一个基于对话框的简单MFC程序分析
一个基于对话框的简单MFC程序分析
一个基于对话框的简单MFC程序分析
test.cpp作为程序的主文件,即程序源文件。
testDlg.cpp是窗口文件,即可视化窗口文件。
mfc程序要求至少要有一个应用程序类(CtestApp)和一个窗口框架类(CtestDlg),两个类共同构成了一个最简单的MFC程序

程序执行流程

打开一个MFC工程,程序执行流程如下:

1.CtestApp theApp

即在主函数之前的全局变量定义

2.调用构造函数

一个基于对话框的简单MFC程序分析

3.进入Winmain函数

这个函数在创建工程后自动提供,不在创建的工程文件里,而是隐藏在vs安装目录下,我参考一个博客找过,但没找到。末尾会附上参考博客。

4.初始化

会运行test.cpp中的InitInstance()函数
一个基于对话框的简单MFC程序分析

还包括窗口类注册,窗口产生,显示和更新以及消息循环
关于窗口的函数,由CtestDlg类完成,包括主窗口中其余控件和窗口的操作
一个基于对话框的简单MFC程序分析

至此,程序运行完毕,会出现如下效果
一个基于对话框的简单MFC程序分析

总结

一个和完整的MFC程序,至少包括一个应用程序类和一个窗口框架类。不去细抠里面类似控件的使用,具体实现功能,想上去还是很简单的,只是MFC中具体实现代码很陌生,甚至是看上去很复杂的样子。
而且MFC程序工程创建出来,不想windowsAPI程序一样,能从头看到尾看程序的执行过程,MFC封装了很多API,或许是代码量变少了,但是也给初学者比如我带来了很大的学习麻烦。
参考了很多博客,写的很详细,限于自己的知识量,看的还是云里雾里,希望后续学习能够更深层次理解。

参考博客链接

https://blog.csdn.net/husongchao/article/details/5063786.

https://blog.csdn.net/zhengjuexi4456/article/details/51841557?utm_medium=distribute.pc_relevant_t0.none-task-blog-searchFromBaidu-1.channel_param&depth_1-utm_source=distribute.pc_relevant_t0.none-task-blog-searchFromBaidu-1.channel_param.

相关文章: