下面是在主要实现代码和注释
CView *pOldView = GetActiveView();//获得活动视图
ASSERT(pOldView);
CView *pNewView = NULL;
if(pOldView->IsKindOf(RUNTIME_CLASS(CCSigleTest1View)))//当前活动视图是默认的视图
{
pNewView == (CView *)GetDlgItem(IDW_PANE_SECOND_MY);
if(pNewView == NULL)
{
//创建
pNewView = (CView *)(RUNTIME_CLASS(CMyView)->CreateObject());//创建对象用New关键字也可以
if(pNewView == NULL)
{
return;
}
CCreateContext context;//视图窗口上下文——用于将文档与新创建的视图关联,没有文档没法创建视图
context.m_pCurrentDoc = pOldView->GetDocument();
pNewView->Create(NULL,NULL,AFX_WS_DEFAULT_VIEW,CRect(0,0,0,0),this,IDW_PANE_SECOND_MY,&context);
pNewView->OnInitialUpdate();
}
}
//要显示的视图必须设置ID=AFX_IDW_PANE_FIRST
//不需要显示的视图设置为其它即可
pNewView = (CView *)GetDlgItem(IDW_PANE_SECOND_MY);
SetActiveView(pNewView);//设置当前活动视图——很重要
pNewView->ShowWindow(SW_SHOW);//显示视图、隐藏旧
pOldView->ShowWindow(SW_HIDE);
p