異なる情報を格納する複数の CDocument 派生型がある場合、型ごとに個別の CMultiDocTemplate が必要であり、通常は CApp 派生クラスに格納されます。App.Initinstance を呼び出すと、次のようなものを使用して各テンプレートを初期化します
m_MyTempate1 = new CAtlasMDITemplate(IDR_RES_TYPE1,
RUNTIME_CLASS(CDocumentType1),
RUNTIME_CLASS(CChildFrameSplitter),
RUNTIME_CLASS(CViewType1));
ベース ドキュメントを開くと、追加のドキュメントを作成して取得できます。これを行うことができる場所はたくさんありますが、Serialize がおそらく最も簡単です。
void CDocumentType1::Serialize(CArchive& ar)
{
//
// Do all the document type 1 serialisation
//
// Create second doc
CDocumentType2 *pDoc2 = theApp.m_MyTempate2->OpenDocumentFile(NULL);
pDoc2->Serialize(ar);
}
ただし、これを行うより従来的な方法は、集約ドキュメントのさまざまな部分にアクセスするための複数のビューを備えた単一のドキュメントを持つことです。