AINT 消息。
? 回到AfxWinMain()函数,执行Run()函数,进入消息循环。
2.3 应用程序类及其主要成员函数
每个应用程序从类CWinApp 派生出自己的应用程序类,并定义一个全局的对象。该应
用程序类包含了Windows 下MFC 应用程序的初始化、运行和结束过程。基于框架建立的应
用程序必须有一个(且只能有一个)从CWinApp 派生的类的对象。在创建的HelloMFC 程序
中,从CWinApp 中派生出了CHelloMFCApp 类,定义了一个全局对象theApp,CHelloMFCApp
类在HelloMFC.cpp 文件中定义。CWinApp 类在MFC 体系中的层次如图2-15 所示。
图2-15 CWinApp 类层次表
枫叶文学网www.fywxw.com
第2 章 应用程序基本框架
·19·
CWinApp 所包含的数据成员主要用于存放和控制应用程序本身的信息,主要数据成员如
下。
? m_pszAppNcom:指定了应用程序名称。
? m_hInstance:标识了应用程序的当前实例。
? m_lpCmdLine:指示一个以NULL 结尾的字符串,指向应用程序的命令行。
? m_nCmdShow:指示最初如何显示窗口。
? m_pszExeNcom:应用程序的模块名称。
? m_pszHelpFilePath:应用程序的帮助文件路径。
? m_pszProfileNcom:应用程序对应的.ini 文件名。
在应用程序中经常需要用到一些全局函数来得到应用程序及实例的一些信息,主要的和
应用类相关的全局函数如下:
? AfxGetApp:返回指向应用程序的CWinApp 对象的指针。
? AfxGetInstanceHandle:返回应用程序实例的句柄。
? AfxGetResourceHandle:返回应用程序资源的句柄。。
? AfxGetAppNcom:返回应用程序的名称。
以上全局函数可以在应用程序代码中的任何位置调用,如调用AfxGetApp 函数可获得指
向CWinApp 类实体的指针。一旦拥有了这个指针,就可以轻松访问CWinApp 类的任何公有
成员变量。
CWinApp 的主要成员函数控制着应用程序的初始化、运行和中止,这在应用程序设计中
起着关键的作用,下面就对CWinApp 的主要成员函数加以介绍。
2.3.1 InitInstance()函数
InitInstance()函数用于初始化实例。Windows 下对同一个应用程序可以运行多个实例。例
如,如果已经在运行资源管理器,用户还可以再一次或多次启动资源管理器,这样,系统中
就有两个或多个资源管理器在运行,这些运行着的资源管理器就是资源管理器应用程序的多
个运行实例。当每次启动某个应用程序的一个实例时,WinMain()函数都要调用InitInstance()
函数。
InitInstance()函数主要完