StdAfx.h 是Visual C++工程的预编译头文件,将一些常用的并且很少需要修改的头文件放入StdAfx.h中可以有效提高VC++的编译速度。
Resourse.h中包含了对程序和资源中所用到的常量的定义。
xxxx.h:该文件是应用程序的主要文件,其中定义了应用程序类CxxxxApp。在MFC中,应用程序封装了一个windows应用程序的初始化、运行和终止。每一个MFC应用程序都必须包括一个从CWinApp派生的应用程序类,在应用程序xxxx中,这个类就是CxxxxApp。这个对象在窗口被创造之前进行构造。类CWinApp从类CWinThread派生,它代表了应用程序的主执行线程。
CMfctestApp::CMfctestApp()
{
//
TODO: add construction code here,
//
Place all significant initialization in InitInstance
}
在MFC程序设计中,WinMain函数是由
类库提供的,它在应用程序启动时被调用。WinMain函数执行如
注册窗口类 之类的标准服务,接着它调用应用程序对象的成员函数来初始化并且运行应用程序。通过重载WinMain函数所调用的类CWinApp的成员函数可以自定义WinMain函数。
NOTE:由于在Win32环境下,每一个应用程序的事例都是独立的,它们有着自己的虚拟地址空间,因此,在目前版本MFC中,成员函数CWinApp::InitApplication已被废弃,原来在InitApplication中进行的初始化操作应该移到
InitInstance中进行。
由AppWizard生成的基于对话框应用程序提供了对InitInstance的默认重载,也正是在该成员函数中提供了基于对话框的应用程序的特点。在MFC中,无论是基于对话框的应用程序,还是基于文档/视结构的应用程序,它们的应用程序对象都是从CWinApp派生来的,它们之间的功能的巨大差异,往往就是通过类CWinApp的成员函数进行不同的重载来实现的。
在每一个同一应用程序的实例被启动时,WinMain函数调用一次InitInstance成员函数。原有的InitApplication不再有意义,每一个应用程序的实例都被认为是独立的,对应用程序的初始化于对实例的初始化没有本质区别。对于InitInstance成员函数,它在当应用程序进行初始化的时候由WinMain函数调用。