C语言vs.MFC1
根据 《孙鑫vc++讲座》视频教程的讲解,从执行原理上说,MFC的程序和常规C++语言的程序是完全一致的。 C++中的main函数相当于MFC中的WinMain函数。
#include <iostream.h>
int x = 1;
main()
{
cout<<x<<endl;
}
如上述代码, 像x这样的全局变量在进入main函数前已经创建,并初始化。
新建一个MFC项目,命名为Test。
CTestApp::CTestApp()
{
// 支持重新启动管理器
m_dwRestartManagerSupportFlags = AFX_RESTART_MANAGER_SUPPORT_RESTART;
// TODO: 在此处添加构造代码,
// 将所有重要的初始化放置在 InitInstance 中
}
// 唯一的一个 CTestApp 对象
CTestApp theApp;
在CTestApp.cpp中定义全局变量theApp,它在WinMain()函数之前被定义。
MFC执行顺序
以Test项目为例,MFC的执行顺序如图1所示。
需要说明的是, 对于MFC程序,MainFrame,View,Dialog等都是窗口。这些窗口的注册与创建、显示等要反复调用多次,一次只能调用一个窗口 ,如图2所示。
如何编写MFC程序2
与普通的c / c ++应用程序不同,在该应用程序中,入口点是main,您可以完全控制执行流程。MFC应用程序是事件驱动的。您编写的代码是基于由于用户与应用程序交互(例如,单击按钮,在文本框中输入文本等)而发生的事件而执行的。当没有交互时,应用程序将处于空闲状态。
(1)最好的位置是OnInitDialog来放置您的初始化代码。您可以在OnInitDialog中初始化所有成员变量。(请记住winMain是Windows应用程序的入口点。但是在MFC中,它被深埋在模板代码中。)
(2)添加消息处理程序以处理用户操作,以便稍后执行您的核心程序。例如:如果对话框上有一个按钮,则需要为该按钮添加消息处理程序函数,当用户单击该按钮时,该函数将被调用。使用类向导(https://msdn.microsoft.com/zh-cn/library/ee748520.aspx)可以轻松完成此操作。