MFC多文档程序启动时一个文档创建两个视图

转载 2012年03月29日 16:59:23

1.在App类中创建两个public变量:

CMultiDocTemplate * m_pDocTemplate;

CMultiDocTemplate * m_pNewDocTemplate;

2.在App类中的Initlnstance()函数中添加以后程序:

m_pDocTemplate = new CMultiDocTemplate(
  IDR_MULTIDTYPE,
  RUNTIME_CLASS(CMultiDocumentStudyDoc),
  RUNTIME_CLASS(CChildFrame), // custom MDI child frame
  RUNTIME_CLASS(CMultiDocumentStudyView));
 AddDocTemplate(m_pDocTemplate);

 //CMultiDocTemplate * pNewDocTemplate;
 m_pNewDocTemplate = new CMultiDocTemplate(
  IDR_MULTIDTYPE,
  RUNTIME_CLASS(CMultiDocumentStudyDoc),
  RUNTIME_CLASS(CChildFrame), // custom MDI child frame
  RUNTIME_CLASS(CNewView));
 AddDocTemplate(m_pNewDocTemplate);
3.重载OnFileNew函数(App类中),默认只打开一个视图:

m_pDocTemplate->OpenDocumentFile(NULL);

4.在Doc类中重载OnNewDocument()函数

 CMultiDocumentStudyApp*p_app = (CMultiDocumentStudyApp*)AfxGetApp();
 EkCreateNewWindow(p_app->m_pNewDocTemplate, this ); 

 

CFrameWnd* CMultiDocumentStudyDoc::EkCreateNewWindow( CDocTemplate* pTemplate,CDocument* pDocument )
{
 ASSERT_VALID( pTemplate );   
    ASSERT_VALID( pDocument );   
    CFrameWnd* pFrame =    
  pTemplate->CreateNewFrame(pDocument, NULL ); 
 CRect rect;
 GetClientRect(pFrame->m_hWnd,&rect);
 pFrame->MoveWindow(100,150,rect.Width(),rect.Height());
    if( pFrame == NULL )   
    {TRACE0( "Warning: failed to create new frame.\n" );   
    return NULL;   
    }   
    ASSERT_KINDOF( CFrameWnd, pFrame );   
    pTemplate->InitialUpdateFrame( pFrame, pDocument );   
 
    return pFrame;  

}

MFC多文档应用程序同时显示两个视图

转载▼ 本文是对网络上各种资料进行了梳理,并在VisualC++6.0下进行了实验测试。 需要解决的问题如下: 1. 在MFC多文档应用程序中同时显示两个视图,其中一个视图显示电路原理图,另...

MFC多文档应用程序同时显示两个视图

原文地址:MFC多文档应用程序同时显示两个视图 测试源码:http://download.csdn.net/detail/whustyle/8352781 本文是对网络上各种资料进行了梳理,并在V...

MFC Windows程序设计--多文档多视图

MDI: 一个文档多个视图 多个打开的文档 多个文档类型MDI允许同时打开多个文档,SDI一个。 MDI支持多个文档类型。SDI一个。 MDI有多个菜单。SDI一般只有一个。 MDI有一个...

VC基于对话框,文档程序启动时隐藏窗口总结

想让对话框程序隐藏启动,然后需要时又可以显示。 刚开始我也想到在OnInitDialog()中加上ShowWindow(SW_HIDE),其实这样是不行的,不信自己去试验 找了网上的方法,都没有满...

VC++深入详解 笔记 第三章(2) 一个单文档MFC应用程序的创建过程

P66 对于一个单文档应用程序,都有一个CMainFrame类,一个以"C+工程名+App"为名字的类,一个以"C+工程名+Doc"为名字的类和一个以"C+工程名+View"为名字的类。假设建立一个名...

如何在MFC单文档中创建多视图

 |字号 订阅 基本步骤如下: 1.首先创建一个MFC单文档应用程序。 2.添加4个MFC类TopLView、BottomLView、TopRView、...
  • xizmi
  • xizmi
  • 2013年12月31日 11:10
  • 431

MFC单文档中创建多视图

基本步骤如下: 1.首先创建一个MFC单文档应用程序。 2.添加4个MFC类TopLView、BottomLView、TopRView、BottomRView,基类为CView。 3...

如何在MFC单文档中创建多视图

基本步骤如下: 1.首先创建一个MFC单文档应用程序。 2.添加4个MFC类TopLView、BottomLView、TopRView、BottomRView,基类为CView。 3...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MFC多文档程序启动时一个文档创建两个视图
举报原因:
原因补充:

(最多只允许输入30个字)