ドキュメントとビューは、一般的な MFC アプリケーションでペアになります。 データはドキュメントに格納されますが、ビューにはデータへの特権アクセス権があります。 ドキュメントをビューから分離すると、データのストレージとメンテナンスが表示から分離されます。
ビューからドキュメント データにアクセスする
ビューは、ドキュメントへのポインターを返す GetDocument 関数を使用するか、ビュー クラスをドキュメント クラスの C++ friend
にすることで、ドキュメントのデータにアクセスします。 その後、ビューはデータへのアクセスを使用して、描画またはその他の操作の準備ができたときにデータを取得します。
たとえば、ビューの OnDraw メンバー関数から、ビューは GetDocument
を使用してドキュメント ポインターを取得します。 その後、そのポインターを使用して、ドキュメント内の CString
データ メンバーにアクセスします。 ビューは文字列を TextOut
関数に渡します。 この例のコードを表示するには、「 ビューでの描画」を参照してください。
ビューへのユーザー入力
ビューでは、マウス クリック自体がデータの選択または編集のいずれかとして解釈される場合もあります。 同様に、キーストロークはデータ入力または編集として解釈される場合があります。 ユーザーがテキストを管理するビューに文字列を入力したとします。 ビューはドキュメントへのポインターを取得し、ポインターを使用して新しいデータをドキュメントに渡します。このポインターは、ドキュメントをデータ構造に格納します。
同じドキュメントの複数のビューを更新する
テキスト エディターの分割ウィンドウなど、同じドキュメントの複数のビューを持つアプリケーションでは、ビューは最初に新しいデータをドキュメントに渡します。 次に、ドキュメントの UpdateAllViews メンバー関数を呼び出します。この関数は、新しいデータを反映して、ドキュメントのすべてのビューに更新を指示します。 これにより、ビューが同期されます。