[ファイル] メニューの [新規作成] または [開く] コマンドに応答して新しいドキュメントを作成すると、ドキュメント テンプレートによって、ドキュメントを表示するための新しいフレーム ウィンドウも作成されます。
ドキュメント テンプレート コンストラクターは、テンプレートで作成できるドキュメント、ウィンドウ、ビューの種類を指定します。 これは、ドキュメント テンプレート コンストラクターに渡す引数によって決まります。 次のコードは、サンプル アプリケーションの 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 と、RUNTIME_CLASS マクロの 3 つの使用方法が含まれます。
RUNTIME_CLASS
は、引数として指定された C++ クラスの CRuntimeClass オブジェクトを返します。 ドキュメント テンプレート コンストラクターに渡される 3 つの CRuntimeClass
オブジェクトは、ドキュメント作成プロセス中に指定されたクラスの新しいオブジェクトを作成するために必要な情報を提供します。 この例は、CScribDoc
オブジェクトにCScribView
オブジェクトをアタッチしたドキュメントテンプレートの作成方法を示します。 ビューは、標準の MDI 子フレーム ウィンドウで囲まれています。
こちらも参照ください
ドキュメント テンプレートとドキュメント/ビュー作成プロセス
ドキュメント/ビューの作成
MFC オブジェクト間のリレーションシップ
新しいドキュメント、Windows、ビューの作成