MFC プログラムまたはコントロールのソース ファイルとヘッダー ファイル

Visual Studio で MFC プロジェクトを作成する場合、作成するプロジェクト用に選択したオプションに応じて、次のファイルが作成されます。 たとえば、プロジェクトに <プロジェクト名>dlg.cpp および <プロジェクト名>dlg.h ファイルが含まれるのは、ダイアログベースのプロジェクトまたはクラスを作成した場合だけです。

これらのファイルはすべて、Projname ディレクトリ、およびソリューション エクスプローラーのヘッダー ファイル (.h ファイル) フォルダーまたはソース ファイル (.cpp ファイル) フォルダーにあります。

ファイル名 説明
Projname.h プログラムまたは DLL のメイン インクルード ファイルです。 すべてのグローバル シンボルおよび他のヘッダー ファイルに対する #include ディレクティブが含まれます。 CWinApp から CPrjnameApp クラスが派生され、InitInstance メンバー関数が宣言されています。 コントロールの場合、CPrjnameApp クラスは COleControlModule から派生されます。
Projname.cpp メイン プログラム ソース ファイルです。 CWinApp から派生する CPrjnameApp クラスのオブジェクトを 1 つ作成し、InitInstance メンバー関数をオーバーライドします。

実行可能ファイルの場合、CPrjnameApp::InitInstance は複数のことを行います。 ドキュメントとビュー間の接続として機能するドキュメント テンプレートを登録し、メイン フレーム ウィンドウを作成し、空のドキュメントを作成します (または、アプリケーションに対するコマンド ライン引数として指定されている場合は、ドキュメントを開きます)。

DLL および ActiveX (旧称 OLE) コントロールの場合は、CProjNameApp::InitInstanceCOleObjectFactory::RegisterAll を呼び出すことによってコントロールのオブジェクト ファクトリを OLE に登録し、AfxOLEInit を呼び出します。 さらに、メンバー関数 CProjNameApp::ExitInstance を使い、AfxOleTerm を呼び出してメモリからコントロールをアンロードします。

このファイルは、DllRegisterServer および DllUnregisterServer 関数を実装することにより、Windows 登録データベース内のコントロールの登録と登録解除も行います。
<プロジェクト名>ctrl.h、<プロジェクト名>ctrl.cpp CProjnameCtrl クラスを宣言および実装します。 CProjnameCtrlCOleControl から派生し、コントロールを初期化、描画、およびシリアル化 (読み込みと保存) する一部のメンバー関数のスケルトン実装が定義されています。 メッセージ、イベント、およびディスパッチのマップも定義されています。
<プロジェクト名>dlg.cpp、<プロジェクト名>dlg.h ダイアログ ベースのアプリケーションを選択した場合に作成されます。 これらのファイルは CProjnameDlg という名前のダイアログ クラスから派生してそれを実装し、ダイアログを初期化してダイアログ データ交換 (DDX) を実行するスケルトン メンバー関数を含みます。 About ダイアログ クラスも、<プロジェクト名>.cpp 内ではなくこれらのファイルに配置されます。
Dlgproxy.cpp、Dlgproxy.h ダイアログ ベースのプログラムでは、メイン ダイアログのプロジェクトのオートメーション プロキシ クラスに対する実装およびヘッダー ファイルで。 オートメーションのサポートを選択した場合にのみ使用されます。
<プロジェクト名>doc.cpp、<プロジェクト名>doc.h CProjnameDoc という名前のドキュメント クラスから派生してそれを実装し、ドキュメントの初期化、ドキュメントのシリアル化 (保存と読み込み)、デバッグ診断の実装を行うためのスケルトン メンバー関数を含みます。
<プロジェクト名>set.h/.cpp データベースをサポートするプログラムを作成した場合に作成され、レコードセット クラスを含みます。
<プロジェクト名>view.cpp、<プロジェクト名>view.h ビュー クラス CProjnameView を派生して実装し、ドキュメント データの表示と印刷に使用されます。 CProjnameView クラスは、次のいずれかの MFC クラスから派生します。

- CEditView
- CFormView
- CRecordView
- COleDBRecordView
- CTreeView
- CListView
- CRichEditView
- CScrollView
- CView
- CHTMLView
- CHTMLEditView

プロジェクトのビュー クラスには、ビューを描画し、デバッグ診断を実装する、スケルトン メンバー関数が含まれています。 印刷のサポートを有効にした場合は、印刷、印刷セットアップ、および印刷プレビューのコマンド メッセージに対するメッセージ マップ エントリが追加されます。 これらのエントリは、ビューの基底クラスの対応するメンバー関数を呼び出します。
<プロジェクト名>PropPage.h、<プロジェクト名>PropPage.cpp CProjnamePropPage クラスを宣言および実装します。 CProjnamePropPageCOlePropertyPage から派生し、スケルトン メンバー関数 DoDataExchange がデータ交換と検証の実装用に提供されます。
IPframe.cpp、IPframe.h アプリケーション ウィザードの [Automation オプション] ページ (ステップ 3/6) でミニ サーバーまたはフル サーバー オプションが選択された場合に作成されます。 ファイルは、インプレース フレーム ウィンドウ クラス CInPlaceFrame を派生して実装し、サーバーがコンテナー プログラムによってインプレース アクティブ化されるときに使われます。
Mainfrm.cpp、Mainfrm.h CFrameWnd (SDI アプリケーションの場合) または CMDIFrameWnd (MDI アプリケーションの場合) から CMainFrame クラスを派生します。 アプリケーション ウィザードの [アプリケーション オプション] ページ (ステップ 4/6) で対応するオプションが選択されている場合、CMainFrame クラスはツール バーのボタンとステータス バーの作成を処理します。 CMainFrame の使い方については、「アプリケーション ウィザードで作成されるフレーム ウィンドウ クラス」をご覧ください。
Childfrm.cpp、Childfrm.h CMDIChildWnd から CChildFrame クラスを派生します。 CChildFrame クラスは MDI ドキュメント フレーム ウィンドウに使われます。 MDI オプションを選択すると、これらのファイルが常に作成されます。

関連項目

Visual Studio の C++ プロジェクトに対して作成されるファイルの種類
ATL プログラムまたはコントロールのソース ファイルとヘッダー ファイル
CLR プロジェクト