void
CMainFrame::SetDlgView(CRuntimeClass* pViewClass)
{
CDocument* pDoc = GetActiveDocument();
m_pView=(CFormView *)
this
->GetActiveView();
CView* pOldView = m_pView;
if
(pOldView->GetRuntimeClass() == pViewClass)
return
;
pOldView->SetDlgCtrlID(0);
m_pView = DYNAMIC_DOWNCAST(CFormView, pViewClass->CreateObject());
ASSERT(m_pView);
if
(!((CView*)m_pView)->Create(NULL, NULL, WS_CHILD | WS_BORDER,
CRect(0, 0, 0, 0),
this
, AFX_IDW_PANE_FIRST, NULL))
{
TRACE0(
"Failed to create view window\n"
);
return
;
}
m_pView->ShowWindow(SW_SHOW);
pOldView->ShowWindow(SW_HIDE);
pDoc->AddView(m_pView);
pDoc->RemoveView(pOldView);
SetActiveView(m_pView);
RecalcLayout();
}