单文档应用程序切换视图

BOOL CMainFrame::ReplaceView(CRuntimeClass * pViewClass)
{
    CCreateContext context;
    CView * pCurrentView;

    // If no active view for the frame, return FALSE because this
    // function retrieves the current document from the active view.
    if ((pCurrentView=this->GetActiveView())==NULL)
       return FALSE;

    // If you're already displaying this kind of view, no need to go
    // further.

   // if ((pCurrentView->IsKindOf(pViewClass))==TRUE)
     //  return TRUE;

     // Get pointer to CDocument object so that it can be used in the
     // creation process of the new view.
	CDocument * pDoc= pCurrentView->GetDocument();

      // Set flag so that document will not be deleted when view is
      // destroyed.
    BOOL bAutoDelete=pDoc->m_bAutoDelete;
    pDoc->m_bAutoDelete=FALSE;      // Delete existing view
    pCurrentView->DestroyWindow();
      // restore flag
    pDoc->m_bAutoDelete=bAutoDelete;

     // Create new view and redraw.
    context.m_pNewViewClass=pViewClass;
    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();
	return true;
}

使用:


((CMainFrame*)AfxGetMainWnd())->ReplaceView(RUNTIME_CLASS(CTableTwo));


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值