CWinApp

CObject
 └CCmdTarget
    └CWinThread
       └CWinApp

CWinApp是一个基类,你通过它来继承Windows应用程序对象。应用程序对象为你提供了初始化应用程序(以及它的每一个实例)和运行应用程序所需的成员函数。

每个使用微软基础类库的应用程序都只能包含一个从CWinApp继承的对象。当Windows调用WinMain函数时,这个对象在其它C++全局对象都已经生成并且可用之后才被创建,WinMain函数是由微软基础类库提供的。将你的CWinApp对象定义为全局的。

当你从CWinApp继承应用程序类的时候,应重载InitInstance成员函数以创建应用程序的主窗口对象。

除了CWinApp的成员函数以外,微软基础类库还提供了以下全局函数,用于访问你的CWinApp对象以及其它全局信息:
·AfxGetApp获得指向CWinApp对象的指针。
·AfxGetInstanceHandle获得当前应用程序实例的句柄。
·AfxGetResourceHandle获得应用程序资源的句柄。
·AfxGetAppName获得一个字符串指针,其中包含了应用程序的名字。
另外,如果你拥有一个指向CWinApp对象的指针,可以通过m_pszExename来获得应用程序的名字。

有关CWinApp类的更多信息参见“Visual C++ 程序员指南”中的“CWinApp:应用程序类”,其中包括下面的内容:
·AppWizard生成的CWinApp派生代码
·CWinApp在你的应用程序执行顺序中作用
·CWinApp的缺省成员函数实现
·CWinApp的主要可重载函数

#include <afxwin.h>

CWinApp类成员

数据成员
m_pszAppName指定了应用程序的名字
m_hInstance标识了应用程序的当前实例
m_hPrevInstance在32位应用程序中被设为NULL
m_lpCmdLine指向一个以null结尾的字符串,指定了应用程序的命令行
m_nCmdShow指定最初如何显示窗口
m_bHelpMode指明用户是否处于Help上下文模式(通常用SHIFT+F1激活)
m_pActiveWnd当一个OLE服务器是现场可激活时,它指向容器应用程序的主窗口
m_pszExeName应用程序的模块名字
m_pszHelpFilePath应用程序的帮助文件的路径
m_pszProfileName应用程序的.INI文件名
m_pszRegistryKey用于确定保存应用程序主要设置的完整的注册表键

构造函数
CWinApp构造一个CWinApp对象

操作函数
LoadCursor载入光标资源
LoadStandardCursor载入WINDOWS.H中IDC_常量所指定的Windows预定义光标
LoadOEMCursor载入WINDOWS.H中OCR_常量所指定的WindowsOEM预定义光标
LoadIcon载入图标资源
LoadStandardIcon载入WINDOWS.H中IDI_常量所指定的Windows预定义图标
LoadOEMIcon载入WINDOWS.H中OIC_常量所指定的WindowsOEM预定义图标
RunAutomated检查应用程序的命令行是否指定/Automation选项。已不用。应当在调用ParseCommandLine之后使用CCommandLineInfo::m_bRunEmbedded中的值
RunEmbedded检查应用程序的命令行是否指定/Embedding选项。已不用。应当在调用ParseCommandLine之后使用CCommandLineInfo::m_bRunEmbedded中的值
ParseCommandLine解析命令行中的每个参数和标志
ProcessShellCommand处理命令行参数和标志
GetProfileInt从应用程序的.INI文件的一个入口中获取一个整数
WriteProfileInt将一个整数写到应用程序的.INI文件的入口
GetProfileString从应用程序的.INI文件的一个入口中获取一个字符串
WriteProfileString将一个字符串写到应用程序的.INI文件的入口
AddDocTemplate将一个文档模板加到应用程序的可用文档模板列表中
GetFirstDocTemplatePosition获取第一个文档模板的位置
GetNextDocTemplate获得文档模板的位置。可以递归调用
OpenDocumentFile由框架调用,用以从文件打开一个文档
AddToRecentFileList将一个文件名加入最近使用(MRU)的文件列表
SelectPrinter选择先前由用户在打印对话框中指定的打印机
CreatePrinterDC创建一个打印机设备环境
GetPrinterDeviceDefaults获得缺省的打印机设备

可重载函数
InitInstance可被重载以执行Windows的实例初始化,比如创建窗口对象
Run运行缺省的消息循环。可被重载以定制消息循环
OnIdle可被重载以执行应用程序指定的空闲时处理
ExitInstance可被重载以在应用程序结束时执行清除操作
HideApplication在关闭所有的文档之前隐藏应用程序
CloseAllDocuments关闭所有打开的文档
PreTranslateMessage在消息被分派到Windows函数::TranslateMessage和::DispatchMessage之前过滤消息
SaveAllModified提示用户保存所有改变了的文档
DoMessageBox为应用程序实现AfxMessageBoxProcessMessageFilter在消息到达应用程序之前截取特定的消息
ProcessWndProcException截取应用程序的消息和命令处理函数抛出的未被处理的异常
DoWaitCursor打开或关闭等待光标
OnDDECommand框架调用这个函数以响应动态数据交换(DDE)执行命令
WinHelp调用Windows的WinHelp函数

初始化函数
LoadStdProfileSettings载入标准的.INT文件设置并允许MRU文件列表特性
SetDialogBkColor设置对话框和消息框的缺省背景颜色
SetRegistryKey使应用程序的设置保存在注册表中,而不是.INI文件中
EnableShellOpen允许用户通过Windows的文件管理器打开数据文件
RegisterShellFileTypes在Windows的文件管理器中注册所有的应用程序文档类型
Enable3dControls使控件具有三维外观
Enable3dControlsStatic使控件具有三维外观

命令处理
OnFileNew实现ID_FILE_NEW命令
OnFileOpen实现ID_FILE_NEW命令
OnFilePrintSetup实现ID_FILE_PRINT_SETUP命令
OnContextHelp处理应用程序内的SHIFT+F1命令
OnHelp处理应用程序内的F1帮助命令(使用当前的上下文)
OnHelpIndex处理ID_HELP_INDEX命令,提供缺省的帮助主题
OnHelpFinder处理ID_HELP_FINDER和ID_DEFAULT_HELP命令
OnHelpUsing处理ID_HELP_USING命令