ドキュメント、ビュー、フレームワーク

MFC フレームワークの中心は、ドキュメントとビューの概念です。 ドキュメントは、ユーザーが編集セッションで操作するデータ オブジェクトです。 これは、[ファイル] メニューの[新規]または [開く] コマンドによって作成され、通常はファイルに保存されます。 (標準 MFC ドキュメント (クラスから派生) は、Active ドキュメントや OLE 複合ドキュメントとは CDocument 異なります。 ビューは、ユーザーがドキュメントと対話するウィンドウ オブジェクトです。

実行中のアプリケーションの主なオブジェクトは次のとおりです。

  • スレッド オブジェクト

    たとえば、アプリケーションで個別の実行スレッドを作成する場合、バックグラウンドで計算を行うには、 から派生 —— したクラスを使用します CWinThreadCWinApp 自体は から派生し、アプリケーションの実行のプライマリ スレッド (またはメイン プロセス CWinThread ) を表します。 また、セカンダリ スレッドで MFC を使用できます。

  • アプリケーション オブジェクト

    アプリケーション クラス (から派生) は、上記のすべてのオブジェクトを制御し、初期化やクリーンアップなどのアプリケーション CWinApp の動作を指定します。 アプリケーションの 1 つの唯一のアプリケーション オブジェクトは、アプリケーションがサポートするドキュメントの種類のドキュメント テンプレートを作成および管理します。

  • ドキュメント テンプレートまたはテンプレート

    ドキュメント テンプレートは、ドキュメント、ビュー、フレーム ウィンドウの作成を調整します。 クラス から派生した特定のドキュメント テンプレート クラスは、1 つの型のすべての開いている CDocTemplate ドキュメントを作成および管理します。 複数の種類のドキュメントをサポートするアプリケーションには、複数のドキュメント テンプレートがあります。 SDI アプリケーションにはクラス CSingleDocTemplate を使用するか 、MDI アプリケーションにクラスを使用します。

  • フレーム ウィンドウ

    ビューは 、"ドキュメント フレーム ウィンドウ" 内に表示されます。SDI アプリケーションでは、ドキュメント フレーム ウィンドウもアプリケーションの "メイン フレーム ウィンドウ" です。 MDI アプリケーションでは、ドキュメント ウィンドウはメイン フレーム ウィンドウ内に表示される子ウィンドウです。 派生メイン フレーム ウィンドウ クラスは、ビューを含むフレーム ウィンドウのスタイルと他の特性を指定します。 フレーム ウィンドウをカスタマイズする必要がある場合は、 から派生して、SDI アプリケーションのドキュメント フレーム CFrameWnd ウィンドウをカスタマイズします。 から派生 CMDIFrameWnd して、MDI アプリケーションのメイン フレーム ウィンドウをカスタマイズします。 また、 からクラスを派生し、アプリケーションでサポートされる MDI ドキュメント フレーム ウィンドウの種類 CMDIChildWnd ごとにカスタマイズします。

  • ドキュメントまたはドキュメント。

    ドキュメント クラス (から派生) CDocument は、アプリケーションのデータを指定します。

    アプリケーションで OLE 機能が必要な場合は、必要な機能の種類に応じて、 または派生クラスの 1 つからドキュメント クラス COleDocument を派生します。

  • ビューまたはビュー。

    ビュー クラス (から派生 CView ) は、ユーザーの "データのウィンドウ" です。ビュー クラスは、ユーザーがドキュメントのデータを表示して操作する方法を制御します。 場合によっては、ドキュメントにデータの複数のビューを含めることができます。

    スクロールが必要な場合は、 から派生します CScrollView 。 ダイアログ テンプレート リソースにレイアウトされたユーザー インターフェイスがビューにある場合は、 から派生します CFormView 。 単純なテキスト データの場合は、 を使用するか、 から派生します CEditView 。 データ入力プログラムなどのフォーム ベースのデータ アクセス アプリケーションの場合は、 (ODBC の場合) CRecordView から派生します。 クラス 、、および CTreeViewCListView も使用できます CRichEditView

実行中のアプリケーションでは、これらのオブジェクトは、コマンドや他のメッセージによってバインドされたユーザー アクションに協調的に応答します。 1 つのアプリケーション オブジェクトによって、1 つ以上のドキュメント テンプレートが管理されます。 各ドキュメント テンプレートでは、1 つ以上のドキュメントが作成および管理されます (アプリケーションが SDI か MDI かによって異なる)。 ユーザーは、フレーム ウィンドウ内に含まれるビューを使用してドキュメントを表示および操作します。 次の図は、SDI アプリケーションのこれらのオブジェクト間の関係を示しています。

Diagram of the objects in a running SDI application.
動作中の SDI アプリケーションのオブジェクト

この記事の残りのファミリでは、フレームワーク ツール、MFC アプリケーション ウィザード、およびリソース エディターによってこれらのオブジェクトがどのように作成され、どのように動作し、プログラミングでどのように使用されるのかについて説明します。 ドキュメント、ビュー、およびフレーム ウィンドウの詳細については、「ウィンドウ オブジェクト」および「ドキュメント/ビュー アーキテクチャ」を参照してください

関連項目

クラスを使用したアプリケーションの作成Windows