ドキュメント テンプレートの作成
更新 : 2007 年 11 月
[ファイル] メニューの [新規作成] コマンドまたは [開く] コマンドに応答して新しいドキュメントを作成する間、ドキュメント テンプレートは、ドキュメントを表示するための新しいフレーム ウィンドウを作成します。
ドキュメント テンプレートのコンストラクタは、このテンプレートで作成できるドキュメント、ウィンドウ、およびビューのタイプを指定します。これは、ドキュメント テンプレートのコンストラクタに渡す引数で指定します。次のコードは、サンプル アプリケーション用の 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 オブジェクトは、指定されたクラスの新しいオブジェクトをドキュメント作成処理時に作成するために必要な情報を提供します。上の例では、CScribView オブジェクトに結合した CScribDoc オブジェクトを作成するドキュメント テンプレートが作成されます。これらのビューは、標準の MDI 子フレーム ウィンドウに含まれます。