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) を示します