VS2013/MFC 程序执行流程
创建好一个 MFC 项目以后,如果是第一次创建,或者虽然创建了很多项目,却并没有认真分析自动生成的程序代码,那么就很有必要知道项目的程序框架如何,项目是从哪开始执行,到哪终止程序,如何响应消息,如何刷新界面等等问题。
工具/原料
· visual studio 2013
MFC 执行流程
1. 每创建一个项目,一般会包含 3 个类,“关于”对话框类、主对话框类以及用于初始化项目的 App 类,假如项目名称为 Demo,那么这三个类分别为 CAboutDlg、CDemoDlg、CDemoApp。
2. 项目生成后,都会生成一个属于 CDemoApp 类的 theApp 对象,对本应用程序实例化,这个在 CDemoApp.cpp 文件中定义,创建时调用构造函数 CDemoApp::CDemoApp();这就是程序创建的第一步。
3. 接下来程序会调用 winmain 函数,这个在项目文件中找不到,但可以在 VS2013 的安装路径下找到,其函数声明为:int AFXAPI AfxWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,_In_LPTSTR lpCmdLine, int nCmdShow);
4. 调用完 winmain 后,就通过 InitInstance()函数初始化窗口,包括注册、创建和显示对话框,InitInstance 函数是 CDemoApp 类中除构造函数以外唯一的成员函数。
一般不需要修改这部分程序,但有些时候可以添加部分代码,比如需要创建多个对话框时,刚启动时弹出的对话框(比如用于登录)不是主对话框,就可以在这个函数里创建主对话框之前调用登录对话框,这样就可以设置启动时的默认对话框了。