ここでは、ビューとなるもの(すなわち、UpdateAllViews で表示更新されるもの)
を追加する方法のサンプルを示す。
まず、以下の項目についての理解を、VC++ のInfoViewer の
「Visual C++」の「Visual C++ プログラマーズ ガイド」の
「プログラム機能の追加」の「詳細」の「MFC のトピック」の
「ドキュメント テンプレートとドキュメント/ビューの作成手順」以降を
読んで理解を深めて欲しい。
#include "XXXFrm1.h" #include "XXXView1.h" #include "XXXFrm2.h" #include "XXXView2.h"を追加する。また、関数 CXXXApp::InitInstance の AddDocTemplate の後ろに
m_pDocTemp1 = new CSingleDocTemplate( IDR_MAINFRAME, RUNTIME_CLASS(CXXXDoc), RUNTIME_CLASS(CXXXFrm1), RUNTIME_CLASS(CXXXView1)); m_pDocTemp2 = new CSingleDocTemplate( IDR_MAINFRAME, RUNTIME_CLASS(CXXXDoc), RUNTIME_CLASS(CXXXFrm2), RUNTIME_CLASS(CXXXView2));を追加する。
int CXXXApp::ExitInstance() { delete m_pDocTemp1; delete m_pDocTemp2; return CWinApp::ExitInstance(); }
void CXXXDoc::OnTestXxx() { CXXXApp* pApp = (CXXXApp*)AfxGetApp(); CSingleDocTemplate* p1 = pApp->m_pDocTemp1; CSingleDocTemplate* p2 = pApp->m_pDocTemp2; p1->InitialUpdateFrame(p1->CreateNewFrame(this,0),0); p2->InitialUpdateFrame(p2->CreateNewFrame(this,0),0); }