ドキュメントおよびビュー アーキテクチャ

既定では、MFC アプリケーション ウィザードは、ドキュメント クラスとビュー クラスを使用してアプリケーション スケルトンを作成します。 MFC により、データ管理がこれらの 2 つのクラスに分離されます。 ドキュメントにより、データが格納され、データの印刷が管理され、データの複数のビューの更新が調整されます。 ビューにはデータが表示され、選択や編集などのユーザー操作が管理されます。

このモデルでは、MFC ドキュメント オブジェクトが永続ストレージに対してデータの読み取りと書き込みを行います。 ドキュメントは、データが存在する場所 (データベース内など) へのインターフェイスを提供することもできます。 別のビュー オブジェクトが、ウィンドウ内のデータのレンダリングから、ユーザーによるデータの選択や編集まで、データの表示を管理します。 ビューはドキュメントから表示データを取得し、データの変更をドキュメントに返します。

ドキュメント/ビューの分離は簡単にオーバーライドまたは無視することができますが、ほとんどの場合、このモデルに従う説得力のある理由があります。 最適な例として、スプレッドシートとグラフ ビューの両方など、同じドキュメントの複数のビューが必要な場合を挙げられます。 ドキュメント/ビュー モデルを使用すると、個別のビュー オブジェクトによってデータの各ビューを表しながら、すべてのビューに共通するコード (計算エンジンなど) をドキュメントに含めることができます。 ドキュメントは、データが変更されるたびにすべてのビューを更新するタスクも行います。

MFC のドキュメント/ビュー アーキテクチャを使用すると、複数のビュー、複数のドキュメントの種類、分割ウィンドウ、その他の重要なユーザー インターフェイス機能を簡単にサポートできます。

ユーザーとプログラマの両方に最も表示される MFC フレームワークの部分は、ドキュメントとビューです。 フレームワークを使用してアプリケーションを開発する作業の大半は、ドキュメント クラスとビュー クラスの記述です。 この記事ファミリでは、以下について説明します。

  • ドキュメントとビューの目的と、フレームワークでのドキュメントとビューの相互作用。

  • 実装するために必要な操作。

ドキュメント/ビューの中心となるのは、次の 4 つの主要クラスです。

CDocument (または COleDocument) クラスは、プログラムのデータを格納または制御するために使用されるオブジェクトをサポートし、プログラマが定義したドキュメント クラスの基本的な機能を提供します。 ドキュメントは、通常、ユーザーが [ファイル] メニューの [開く] コマンドを使用して開き、[ファイル] メニューの [保存] コマンドを使用して保存するくデータの単位を表します。

CView (または多くの派生クラスの 1 つ) は、プログラマが定義したビュー クラスの基本的な機能を提供します。 ビューはドキュメントにアタッチされ、ドキュメントとユーザーの間の仲介として機能します。ビューは、ドキュメントの画像を画面にレンダリングし、ドキュメントに対する操作としてユーザー入力を解釈します。 このビューでは、印刷と印刷プレビューの両方の画像もレンダリングされます。

CFrameWnd (またはそのバリエーションの 1 つ) は、ドキュメントの 1 つ以上のビューの周りにフレームを提供するオブジェクトをサポートします。

CDocTemplate ( または CSingleDocTemplate または CMultiDocTemplate) は、特定の型の 1 つ以上の既存のドキュメントを調整し、その型の正しいドキュメント、ビュー、およびフレーム ウィンドウ オブジェクトの作成を管理するオブジェクトをサポートします。

次の図には、ドキュメントとそのビューの関係が示されています。

View is the part of the document that's displayed.
ドキュメントとビュー

クラス ライブラリのドキュメント/ビューの実装では、データ自体が表示とデータに対するユーザー操作から分離されます。 データに対する変更はすべて、ドキュメント クラスを通じて管理されます。 ビューは、このインターフェイスを呼び出してデータにアクセスし、更新します。

ドキュメント、関連付けられたビュー、およびビューを構成するフレーム ウィンドウは、ドキュメント テンプレートによって作成されます。 ドキュメント テンプレートは、1 種類のドキュメントのすべてのドキュメントの作成と管理を担当します。

さらに詳しい情報

関連項目

ユーザー インターフェイス要素
Windows
フレーム ウィンドウ
ドキュメント テンプレートとドキュメントおよびビューの作成手順
ドキュメントおよびビューの作成
新しいドキュメント、ウィンドウ、ビューの作成