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