CWinApp : アプリケーション クラス
更新 : 2007 年 11 月
MFC のメイン アプリケーション クラスには、Windows オペレーティング システム用アプリケーションの初期化、実行、および終了処理がカプセル化されています。フレームワークにビルドされたアプリケーションには、CWinApp の派生クラスのオブジェクトが 1 つだけ必要です。このオブジェクトを生成してから、ウィンドウを作成します。
CWinApp は、CWinThread の派生クラスであり、アプリケーションのメイン スレッドを表します。実行するスレッドが複数の場合もあります。MFC の最近のバージョンでは、InitInstance、Run、ExitInstance、OnIdle の各メンバ関数は実際には CWinThread クラスに含まれています。しかし、ここでは CWinApp のメンバであるものとして説明します。ここでは、プライマリ スレッドではなくアプリケーション オブジェクトとしてのオブジェクトの役割について説明するからです。
メモ : |
---|
アプリケーション クラスは、アプリケーションの実行時のプライマリ スレッドになります。Win32 API 関数を使用すると、セカンダリ スレッドを生成できます。セカンダリ スレッドからも MFC ライブラリを呼び出すことができます。詳細については、「マルチスレッド」を参照してください。 |
ほかの Windows オペレーティング システム用プログラムと同様に、フレームワーク アプリケーションにも WinMain 関数があります。ただし、フレームワーク アプリケーションでは、WinMain を記述しません。WinMain はクラス ライブラリによって提供され、アプリケーションの起動時に呼び出されます。そして、ウィンドウ クラスの登録などの標準サービスを実行します。その後、アプリケーション オブジェクトのメンバ関数を呼び出してアプリケーションを初期化し、実行します。WinMain が呼び出す CWinApp のメンバ関数をオーバーライドすると、WinMain をカスタマイズできます。
アプリケーションを初期化するとき、WinMain は、アプリケーション オブジェクトのメンバ関数 InitApplication と InitInstance を呼び出します。アプリケーションのメッセージ ループを実行するときは、WinMain はメンバ関数 Run を呼び出します。終了時には、WinMain はアプリケーション オブジェクトのメンバ関数 ExitInstance を呼び出します。
メモ : |
---|
太字の名前は、MFC ライブラリと Visual C++ で提供される要素です。プログラマが作成またはオーバーライドする要素は、固定幅の書体で示されています。 |