Share via


CDocTemplate クラス

ドキュメント テンプレートの基本的な機能を定義する抽象基本クラスです。

class CDocTemplate : public CCmdTarget

解説

通常、アプリケーションの InitInstance 関数の実装によって 1 つ以上のドキュメント テンプレートを作成します。 ドキュメント テンプレートは、次の 3 つのクラス間の関係を定義します。

  • ドキュメント クラス。これは、CDocument クラスから派生させます。

  • ビュー クラス。これは、上に挙げたドキュメント クラスのデータを表示します。 このクラスは、CViewCScrollViewCFormView、または 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 を定義します。 SetContainerInfoSetServerInfo を呼び出して、これらの付加的な OLE リソースを指定します。

CDocTemplate は抽象クラスなので、直接使うことはできません。 2 つの一般的なアプリケーションを使用してCDocTemplate-Microsoft Foundation クラス ライブラリによって提供されるクラスを派生します。CSingleDocTemplate、SDI を実装してCMultiDocTemplate、MDI を実装します。 ドキュメント テンプレートの使い方の詳細については、これらのクラスを参照してください。

アプリケーションが、SDI や MDI とは根本的に異なる種類のユーザー インターフェイスを要求している場合は、CDocTemplate から独自の派生クラスを作成できます。

CDocTemplate の詳細については、「ドキュメント テンプレートとドキュメント/ビューの作成手順」を参照してください。

必要条件

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

参照

参照

CCmdTarget クラス

階層図

CSingleDocTemplate クラス

CMultiDocTemplate クラス

CDocument クラス

CView クラス

CScrollView クラス

CEditView クラス

CFormView クラス

CFrameWnd クラス

CMDIChildWnd クラス

その他の技術情報

CDocTemplate のメンバー