ドキュメントを複数作成する.
異なるドキュメントを管理する CMultiDocTemplate を複数個 CWinApp のメンバとして用意する.
AppWizard で作成すると,CWinApp::InitInstance() にて,CMultiDocTemplate を new して AddDocTemplate() しているが,CMultiDocTemplate のインスタンスを CWinApp のメンバに格納する.
CMultiDocTemplate m_pTemplate1;
CMultiDocTemplate m_pTemplate2;
// 1つ目のドキュメント
m_pTemplate1 = new CMultiDocTemplate(
IDR_FOOTYPE,
RUNTIME_CLASS(CFooDoc),
RUNTIME_CLASS(CFooFrame),
RUNTIME_CLASS(CFooView));
AddDocTemplate(m_pTemplate1);
// 2つ目のドキュメント
m_pTemplate2 = new CMultiDocTemplate(
IDR_BARTYPE,
RUNTIME_CLASS(CBarDoc),
RUNTIME_CLASS(CBarFrame),
RUNTIME_CLASS(CBarView));
AddDocTemplate(m_pTemplate2);
あとは,それぞれドキュメントを開く時に,以下の様にする.
ASSERT(m_pFooTempl != NULL);
ASSERT_KINDOF(CDocTemplate, m_pTemplate1);
m_pTemplate1->OpenDocumentFile(NULL);
MFC の隠しクラス CDocManager(Docmgr.cpp) が参考になる.
参照