Share via


ドキュメント/ビュー アーキテクチャ

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

ドキュメント/ビュー モデルでは、MFC ドキュメント オブジェクトが 2 次記憶にデータを読み書きします。 また、ドキュメントには、データベースなど、データが格納されている場所に関係なく、データとのインターフェイスを用意できます。 別個にあるビュー オブジェクトは、ウィンドウ内のデータ表示からユーザーによるデータの選択や編集に至るまでの、データ表示を管理します。 ビューは、ドキュメントから表示データを取得し、データの変更があればドキュメントに通知します。

ドキュメントとビューは分割しなくてもかまいませんが、ほとんどの場合は、ドキュメント/ビュー モデルに従う方がよい理由があります。 その主な理由の 1 つは、同じドキュメントについて、スプレッドシート ビューとグラフ ビューの両方など、マルチ ビューが必要なときがあるためです。 ドキュメント/ビュー モデルを使用すると、個別のビュー オブジェクトでデータの各ビューを表すと同時に、計算エンジンなど、すべてのビューに共通のコードをドキュメント内に配置できます。 また、ドキュメントは、データの変更時にすべてのビューを更新するタスクも行います。

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

MFC フレームワークの中で、ユーザーとプログラマの両者が見る機会の最も多いのが、ドキュメントとビューです。 MFC フレームワークを利用したアプリケーション開発の大半は、ドキュメント クラスとビュー クラスを記述する作業です。 ここでは、次の内容について説明します。

  • ドキュメントおよびビューの用途と、フレームワーク内での相互の連係。

  • ドキュメントとビューの実装に必要な作業。

ドキュメント/ビューには、4 つの主要クラスがあります。

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

CView クラス (または、その派生クラス) は、プログラマが定義するビュー クラスの基本的な機能を用意します。 ビューは、文書に添付されているし、ドキュメントとユーザーの間で仲介役として機能します。ビューは、ドキュメント、画面上のイメージを表示してドキュメント操作としてユーザー入力を解釈します。 また、ビューは、印刷と印刷プレビューに対してイメージを描画します。

CFrameWnd クラス (または、その変形) は、ドキュメントの 1 つ以上のビューの周囲に枠を表示するオブジェクトをサポートします。

CDocTemplate クラス (つまり、CSingleDocTemplate または CMultiDocTemplate) は、指定されたタイプの既存のドキュメントを調整するオブジェクトをサポートし、ドキュメント タイプに適したドキュメント、ビュー、フレーム ウィンドウのオブジェクトの作成を管理します。

ドキュメントとビューの関係を次の図に示します。

ドキュメントとビュー

ドキュメント ビューの詳細

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

ドキュメント、ドキュメントに関連付けられたビュー、およびビューの枠になるフレーム ウィンドウは、ドキュメント テンプレートを使用して作成されます。 ドキュメント テンプレートは、ある 1 つのドキュメント タイプのすべてのドキュメントについて作成と管理を行います。

さらに詳しくは次のトピックをクリックしてください

参照

概念

Windows

フレーム ウィンドウ

ドキュメント テンプレートとドキュメント/ビューの作成手順

ドキュメントおよびビューの作成

新しいドキュメント、ウィンドウ、ビューの作成

その他の技術情報

ユーザー インターフェイス