MFC 中的主应用程序类封装了应用程序在 Windows 操作系统上的初始化、运行和终止过程。 基于框架构建的应用程序必须具有一个且只有一个派生自 CWinApp 的类的对象。 此对象是在创建窗口之前构造的。
CWinApp 派生自 CWinThread,表示应用程序的执行主线程,该线程可能具有一个或多个线程。 在最新版本的 MFC 中,InitInstance“运行ExitInstance”和OnIdle“成员”函数实际上在类CWinThread中。 此处将讨论这些函数,就像它们是 CWinApp 成员一样,因为讨论涉及对象作为应用程序对象而不是主线程的角色。
注释
应用程序类构成了应用程序执行的主要线程。 使用 Win32 API 函数,还可以创建执行辅助线程。 这些线程可以使用 MFC 库。 有关详细信息,请参阅 多线程处理。
与 Windows作系统的任何程序一样,框架应用程序具有一个 WinMain 函数。 但是,在框架应用程序中,不编写 WinMain。 它由类库提供,并在应用程序启动时调用。 WinMain 执行标准服务,例如注册窗口类。 然后,它调用应用程序对象的成员函数来初始化和运行应用程序。 (您可通过重写 WinMain 调用的 CWinApp 成员函数来自定义 WinMain。)
若要初始化应用程序,WinMain 会调用您应用程序对象的 InitApplication 和 InitInstance 成员函数。 若要运行应用程序的消息循环, WinMain 请调用 Run 成员函数。 终止时, WinMain 调用应用程序对象 ExitInstance 的成员函数。
注释
本文档中 粗体 显示的名称指示由 Microsoft 基础类库和 Visual C++提供的元素。 以 monospaced 类型显示的名称表示您创建或重写的元素。
另请参阅
常规 MFC 主题
CWinApp 和 MFC 应用程序向导
可重写的 CWinApp 成员函数
特殊 CWinApp 服务