To build an MDI application with two views 1. Build an MDI application by using MFC AppWizard. AppWizard will create a skeleton MDI application with a single view. 2. Add a new class derived from the CView class. 3. Add debug and nondebug versions of the GetDocument function. Use the GetDocument functions from your existing view class as a model. 4. Include the header file for the document class in the source file of the new view class. 5. Place the command handlers in the CChildFrame class. It is easier to access the view or the document from CChildFrame rather than from the view class. Use the CFrameWnd::GetActiveView and CFrameWnd::GetActiveDocument functions to access the views and the document. 6. Add a handler for the OnDraw event of the new view class. At this point, you must decide whether you want users to select the type of view at application startup, or whether you want to have your application start with a default view. In either case, the user can select another view at run time. void CMainFrame::OnWindowItalics() { if (0 == m_pItalicsTemplate) { m_pItalicsTemplate = new CMultiDocTemplate( IDR_XXXXTYPE, RUNTIME_CLASS(CXXXXViewsDoc), RUNTIME_CLASS(CChildFrame), RUNTIME_CLASS(CItalicsView)); } CMDIChildWnd* pActiveChild = MDIGetActive(); CDocument* pDocument; if (NULL == pActiveChild || (pDocument = pActiveChild->GetActiveDocument()) == NULL) { TRACE0("Warning: No active document.\n"); AfxMessageBox(AFX_IDP_COMMAND_FAILURE); return; // command failed } CFrameWnd* pFrame = m_pItalicsTemplate-> CreateNewFrame(pDocument, pActiveChild); if (NULL == pFrame) { TRACE0("Warning: failed to create new frame.\n"); return; // command failed } m_pItalicsTemplate->InitialUpdateFrame(pFrame, pDocument); }