MFC のメイン アプリケーション クラスは、Windows オペレーティング システムのアプリケーションの初期化、実行、終了をカプセル化します。 フレームワーク上に構築されたアプリケーションには、 CWinApp から派生したクラスのオブジェクトが 1 つだけ必要です。 このオブジェクトは、ウィンドウが作成される前に構築されます。
CWinApp
は、アプリケーションの実行のメイン スレッドを表す CWinThread
から派生します。これは、1 つ以上のスレッドが含まれている可能性があります。 MFC の最近のバージョンでは、 InitInstance
、 実行、 ExitInstance
、および OnIdle
メンバー関数は、実際にはクラス CWinThread
内にあります。 これらの関数は、代わりにメンバー CWinApp
されているかのようにここで説明します。これは、プライマリ スレッドではなく、アプリケーション オブジェクトとしてのオブジェクトの役割に関するものであるためです。
注
アプリケーション クラスは、アプリケーションの実行のプライマリ スレッドを構成します。 Win32 API 関数を使用して、実行のセカンダリ スレッドを作成することもできます。 これらのスレッドは MFC ライブラリを使用できます。 詳細については、「マルチスレッド」 を参照してください。
Windows オペレーティング システムのプログラムと同様に、フレームワーク アプリケーションには WinMain
機能があります。 ただし、フレームワーク アプリケーションでは、 WinMain
を記述しません。 クラス ライブラリによって提供され、アプリケーションの起動時に呼び出されます。
WinMain
は、ウィンドウ クラスの登録などの標準サービスを実行します。 次に、アプリケーション オブジェクトのメンバー関数を呼び出して、アプリケーションを初期化して実行します。
WinMain
が呼び出すCWinApp
メンバー関数をオーバーライドすることで、WinMain
をカスタマイズできます。
アプリケーションを初期化するために、 WinMain
は、アプリケーション オブジェクトの InitApplication
と InitInstance
メンバー関数を呼び出します。 アプリケーションのメッセージ ループを実行するために、 WinMain
は Run メンバー関数を呼び出します。 終了時に、 WinMain
はアプリケーション オブジェクトの ExitInstance
メンバー関数を呼び出します。
注
このドキュメントで 太字 で示されている名前は、Microsoft Foundation クラス ライブラリと Visual C++ によって提供される要素を示します。
monospaced
型に表示される名前は、作成またはオーバーライドする要素を示します。
こちらも参照ください
MFC の一般的なトピック
CWinApp と MFC アプリケーション ウィザード
オーバーライド可能な CWinApp メンバー関数
特殊な CWinApp サービス