现在的位置: 首页 > 综合 > 正文

动态创建视图

2013年10月14日 ⁄ 综合 ⁄ 共 664字 ⁄ 字号 评论关闭

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

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

 

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

抱歉!评论已关闭.