次の方法で共有


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

ドキュメントとビューは、一般的な MFC アプリケーションでペアになります。 データはドキュメントに格納されますが、ビューにはデータへの特権アクセス権があります。 ドキュメントをビューから分離すると、データのストレージとメンテナンスが表示から分離されます。

ビューからドキュメント データにアクセスする

ビューは、ドキュメントへのポインターを返す GetDocument 関数を使用するか、ビュー クラスをドキュメント クラスの C++ friend にすることで、ドキュメントのデータにアクセスします。 その後、ビューはデータへのアクセスを使用して、描画またはその他の操作の準備ができたときにデータを取得します。

たとえば、ビューの OnDraw メンバー関数から、ビューは GetDocument を使用してドキュメント ポインターを取得します。 その後、そのポインターを使用して、ドキュメント内の CString データ メンバーにアクセスします。 ビューは文字列を TextOut 関数に渡します。 この例のコードを表示するには、「 ビューでの描画」を参照してください。

ビューへのユーザー入力

ビューでは、マウス クリック自体がデータの選択または編集のいずれかとして解釈される場合もあります。 同様に、キーストロークはデータ入力または編集として解釈される場合があります。 ユーザーがテキストを管理するビューに文字列を入力したとします。 ビューはドキュメントへのポインターを取得し、ポインターを使用して新しいデータをドキュメントに渡します。このポインターは、ドキュメントをデータ構造に格納します。

同じドキュメントの複数のビューを更新する

テキスト エディターの分割ウィンドウなど、同じドキュメントの複数のビューを持つアプリケーションでは、ビューは最初に新しいデータをドキュメントに渡します。 次に、ドキュメントの UpdateAllViews メンバー関数を呼び出します。この関数は、新しいデータを反映して、ドキュメントのすべてのビューに更新を指示します。 これにより、ビューが同期されます。

詳しく知りたいこと

こちらも参照ください

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