Share via


CDocument クラス

ユーザーが定義するドキュメント クラスの基本機能が用意されています。

class CDocument : public CCmdTarget

解説

ドキュメントとは、通常、[ファイル] メニューの [開く] コマンドより開き、[上書き保存] で保存するデータの単位です。

CDocument は、ドキュメントの新規作成、読み込み、保存のような標準の操作をサポートします。 フレームワークは、CDocument で定義されたインターフェイスを使って、ドキュメントを操作します。

アプリケーションは 1 つ以上のドキュメントの型をサポートできます。たとえば、アプリケーションはスプレッドシートとテキスト ドキュメントの両方をサポートすることがあります。 それぞれのドキュメントの型は、関連付けられたドキュメント テンプレートを持ちます。このドキュメント テンプレートは、ドキュメントの型がどのようなリソース (メニュー、アイコン、アクセラレータ テーブルなど) を使うかを指定します。 それぞれのドキュメントは、それに関連付けられた CDocTemplate オブジェクトへのポインターを持っています。

ドキュメントに関連付けられた CView オブジェクトを使って、ドキュメントとやりとりをします。 ビューはフレーム ウィンドウにドキュメント イメージを渡し、ドキュメントへの操作としてのユーザー入力を解釈します。 ドキュメントは、それに関連付けられた複数のビューを持つことができます。 ウィンドウにドキュメントを開くとき、フレームワークはビューを作成して、それをドキュメントにアタッチします。 ドキュメント テンプレートは、それぞれのドキュメントの型が表示されるときに使われるビューの型とフレーム ウィンドウの型を指定します。

ドキュメントは、フレームワークの標準コマンド ルーティングの一部であり、したがって [ファイル] メニューの [上書き保存] メニュー項目などの標準ユーザー インターフェイスのコンポーネントからコマンドを受け取ります。 ドキュメントは、アクティブなビューから転送されたコマンドを受け取ります。 ドキュメントが渡されたコマンドを処理しないと、それを管理しているドキュメント テンプレートにそのコマンドが転送されます。

ドキュメントのデータが変更されるとき、そのビューにそれぞれ変更を反映させる必要があります。 CDocument は、変更をビューに通知するための UpdateAllViews メンバー関数を用意しています。したがって、ビューは必要に応じてそれぞれ再描画されます。 フレームワークはドキュメントが閉じられる前に、変更されたファイルを保存するかどうかをユーザーに確認します。

一般的なアプリケーションでドキュメントを実装するには、次のようにします。

  • ドキュメントの種類ごとに CDocument の派生クラスを用意します。

  • 各ドキュメントのデータを格納するためのメンバー変数を追加します。

  • ドキュメントのデータの読み込み、変更をするメンバー関数を実装します。 ドキュメントのビューはこれらのメンバー関数の最も重要なユーザーです。

  • ドキュメントのデータをディスクとの間で読み込み、書き込みをするために、ドキュメント クラスで CObject::Serialize メンバー関数をオーバーライドします。

メール サポート (MAPI) が存在する場合、CDocument はメールを使用してドキュメントの送信をサポートします。 「MAPI」と「MFC での MAPI サポート」を参照してください。

CDocument クラスの詳細については、「シリアル化」、「ドキュメント/ビュー アーキテクチャ」および「ドキュメントおよびビューの作成」を参照してください。

必要条件

**ヘッダー:**afxwin.h

参照

処理手順

MDIDOCVW サンプル:ドキュメント/ビュー アーキテクチャを使用して MDI を示します

SNAPVW サンプル:フォーム ビュー] アプリケーションをでプロパティ ページを使用します。

NPP サンプル:Windows Messaging API (MAPI) を示します

参照

CCmdTarget クラス

階層図

CCmdTarget クラス

CView クラス

CDocTemplate クラス

その他の技術情報

CDocument のメンバー