不得不承认,太难了,研究了半天。
在一个方法里放上这段代码就可以创建出新的视图了。
CCreateContext context;
CDocument *pDoc = GetActiveView()->GetDocument();
//销毁先前的视图窗口
pDoc->m_bAutoDelete = FALSE;
GetActiveView()->DestroyWindow();
pDoc->m_bAutoDelete = TRUE;
//创建新视图
context.m_pNewViewClass = RUNTIME_CLASS( CAnotherView); ; //创建哪种视图与此传入的类名有关系。
context.m_pCurrentDoc = pDoc;
context.m_pNewDocTemplate = NULL;
context.m_pLastView = NULL;
context.m_pCurrentFrame = NULL;
CView *pNewView = (CView *)this->CreateView(&context);
//设置新视图为活动状态
this->SetActiveView(pNewView);
RecalcLayout();
//初始化新视图
pNewView->OnInitialUpdate();
这段代码应该放在MainFrm中,才能保证各种方法起作用。