建立新工程
打开visual studio,我这里用的是2017,其他版本的创建类似
这里默认已安装MFC板块,创建名为“test”的MFC应用程序
创建基于对话框的MFC程序除了在第二个窗口中需要勾选“基于对话框”外,其余的默认即可
至此一个基于对话框的MFC程序创建完成
程序中对象类的关系
程序创建后,真正需要我们关心的,其实就两个文件,其他的都是vs提供的组件,即test.cpp和testDlg.cpp两个文件
在ReadMe.txt文件中详细说明了各个文件的具体作用
test.cpp作为程序的主文件,即程序源文件。
testDlg.cpp是窗口文件,即可视化窗口文件。
mfc程序要求至少要有一个应用程序类(CtestApp)和一个窗口框架类(CtestDlg),两个类共同构成了一个最简单的MFC程序
程序执行流程
打开一个MFC工程,程序执行流程如下:
1.CtestApp theApp
即在主函数之前的全局变量定义
2.调用构造函数
3.进入Winmain函数
这个函数在创建工程后自动提供,不在创建的工程文件里,而是隐藏在vs安装目录下,我参考一个博客找过,但没找到。末尾会附上参考博客。
4.初始化
会运行test.cpp中的InitInstance()函数
还包括窗口类注册,窗口产生,显示和更新以及消息循环
关于窗口的函数,由CtestDlg类完成,包括主窗口中其余控件和窗口的操作
至此,程序运行完毕,会出现如下效果
总结
一个和完整的MFC程序,至少包括一个应用程序类和一个窗口框架类。不去细抠里面类似控件的使用,具体实现功能,想上去还是很简单的,只是MFC中具体实现代码很陌生,甚至是看上去很复杂的样子。
而且MFC程序工程创建出来,不想windowsAPI程序一样,能从头看到尾看程序的执行过程,MFC封装了很多API,或许是代码量变少了,但是也给初学者比如我带来了很大的学习麻烦。
参考了很多博客,写的很详细,限于自己的知识量,看的还是云里雾里,希望后续学习能够更深层次理解。
参考博客链接
https://blog.csdn.net/husongchao/article/details/5063786.