CDocTemplate クラス
更新 : 2007 年 11 月
ドキュメント テンプレートの基本的な機能を定義する抽象基本クラスです。
class CDocTemplate : public CCmdTarget
解説
通常、アプリケーションの InitInstance 関数の実装によって 1 つ以上のドキュメント テンプレートを作成します。ドキュメント テンプレートは、次の 3 つのクラス間の関係を定義します。
ドキュメント クラス。これは、CDocument クラスから派生させます。
ビュー クラス。これは、上に挙げたドキュメント クラスのデータを表示します。このクラスは、CView、CScrollView、CFormView、または CEditView から派生できます。(CEditView を直接使用することもできます。)
フレーム ウィンドウ クラス。これは、ビューを保持します。シングル ドキュメント インターフェイス (SDI: Single Document Interface) のアプリケーションでは、CFrameWnd から派生させます。マルチ ドキュメント インターフェイス (MDI: Multiple Document Interface) のアプリケーションでは、CMDIChildWnd から派生させます。フレーム ウィンドウの動作をカスタマイズする必要がない場合は、派生クラスを作成せずに直接 CFrameWnd または CMDIChildWnd を使うことができます。
アプリケーションはサポートするドキュメントの型それぞれに 1 つのドキュメント テンプレートを持ちます。たとえば、アプリケーションがスプレッドシートとテキストのドキュメントをサポートしていれば、アプリケーションは、2 つのドキュメント テンプレート オブジェクトを持ちます。それぞれのドキュメント テンプレートは、対応する型のすべてのドキュメントの作成、管理を行います。
ドキュメント テンプレートは、ドキュメント クラス、ビュー クラス、フレーム ウィンドウ クラスのための CRuntimeClass オブジェクトのポインタを格納します。CRuntimeClass オブジェクトは、ドキュメント テンプレートを構築するときに指定します。
ドキュメント テンプレートは、ドキュメントの型と共に使われるリソース (メニュー、アイコン、アクセラレータ テーブルなど) の ID を保持します。また、ドキュメント テンプレートは、ドキュメントの型についての付加情報を持つ文字列も持っています。この情報には、ドキュメントの型の名前 (例 : "Worksheet") とファイル名の拡張子 (例 : ".xls") が含まれます。オプションとして、Windows のファイル マネージャや OLE (Object Linking and Embedding) のようなアプリケーションのユーザー インターフェイスで使われる文字列を含むこともできます。
アプリケーションが OLE コンテナや OLE サーバーであるときは、ドキュメント テンプレートは、埋め込み先編集の有効化で使われるメニューの ID も定義します。アプリケーションが OLE サーバーのときは、ドキュメント テンプレートは埋め込み先編集の有効化で使われるツール バーやメニューの ID を定義します。SetContainerInfo や SetServerInfo を呼び出して、これらの付加的な OLE リソースを指定します。
CDocTemplate は抽象クラスなので、直接使うことはできません。通常のアプリケーションでは、Microsoft Foundation Class ライブラリで用意している次の 2 つの CDocTemplate から派生したクラスのうちの 1 つを使います。1 つは、SDI を実装した CSingleDocTemplate クラス、もう 1 つは、MDI を実装した CMultiDocTemplate クラスです。ドキュメント テンプレートの使い方の詳細については、これらのクラスを参照してください。
アプリケーションが、SDI や MDI とは根本的に異なる種類のユーザー インターフェイスを要求している場合は、CDocTemplate から独自の派生クラスを作成できます。
CDocTemplate の詳細については、「ドキュメント テンプレートとドキュメント/ビューの作成手順」を参照してください。
必要条件
ヘッダー : afxwin.h