ドキュメント テンプレートの作成

[ファイル] メニューの [新規] または [開く] コマンドに応答して新しいドキュメントを作成する場合、ドキュメント テンプレートにより、ドキュメントを表示するための新しいフレーム ウィンドウも作成されます。

ドキュメント テンプレート コンストラクターは、テンプレートが作成できるドキュメント、ウィンドウ、およびビューの種類を指定します。 これは、ドキュメント テンプレート コンストラクターに渡す引数によって決まります。 次のコードは、サンプル アプリケーションの CMultiDocTemplate を作成する方法を示しています。

CMultiDocTemplate* pDocTemplate;
pDocTemplate = new CMultiDocTemplate(IDR_CMyDocTypeTYPE,
   RUNTIME_CLASS(CMyDoc),
   RUNTIME_CLASS(CChildFrame), // custom MDI child frame
   RUNTIME_CLASS(CMyView));
if (!pDocTemplate)
return FALSE;
AddDocTemplate(pDocTemplate);

新しい CMultiDocTemplate オブジェクトを指すポインターは、AddDocTemplate の引数として使用されます。 CMultiDocTemplate コンストラクターの引数には、ドキュメントの種類のメニューとアクセラレータに関連付けられているリソース ID と、3 つの RUNTIME_CLASS マクロの使用が含まれています。 RUNTIME_CLASS では、引数として指定された C++ クラスの CRuntimeClass オブジェクトを返します。 ドキュメント テンプレート コンストラクターに渡される 3 つの CRuntimeClass オブジェクトは、ドキュメント作成プロセス中に指定されたクラスの新しいオブジェクトを作成するために必要な情報を提供します。 この例は、CScribView オブジェクトがアタッチされた CScribDoc オブジェクトを作成するドキュメント テンプレートの作成を示しています。 ビューは、標準の MDI 子フレーム ウィンドウによってフレーム表示されます。

関連項目

ドキュメント テンプレートとドキュメントおよびビューの作成手順
ドキュメントおよびビューの作成
各種 MFC オブジェクト間の関係
新しいドキュメント、ウィンドウ、ビューの作成