Если у вас есть несколько производных типов 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);
}
Однако более обычным способом сделать это было бы иметь один документ с несколькими представлениями для доступа к различным частям сводного документа.