动态创建视图

不得不承认,太难了,研究了半天。

在一个方法里放上这段代码就可以创建出新的视图了。

 

 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中,才能保证各种方法起作用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值