1--首先创建想切换的两个视图类(view类) 比如: class CTestView1 : public CFormView { } class CTestView2 : public CView { } 2--然后在xx.cpp文件中(XX代表工程名)即CxxApp类的cpp文件中 包含切换的两个类的头文件, 如: #include "TestView1.h" #include "TestView2.h" 3--在 CxxApp的头文件里申请两个CMultiDocTemplate 指针 如: CMultiDocTemplate * m_pTemplateTestView1; CMultiDocTemplate * m_pTemplateTestView2; 4--在CxxApp的InitInstance()函数内,创建上面两个指针指向的实例 BOOL CXXApp::InitInstance() { ... m_pTemplateTestView1= new CMultiDocTemplate( IDR_MAINFRAME, RUNTIME_CLASS(CTestViewDoc), RUNTIME_CLASS(CChildFrame), // custom MDI child frame RUNTIME_CLASS(CTestView1)); AddDocTemplate(m_pTemplateTestView1); m_pTemplateTestView2= new CMultiDocTemplate( IDR_MAINFRAME, RUNTIME_CLASS(CTestViewDoc), RUNTIME_CLASS(CChildFrame), // custom MDI child frame RUNTIME_CLASS(CTestView2)); AddDocTemplate(m_pTemplateTestView2); //添加到此app的模板管理类中 ... } 注意CMultiDocTemplate()内第一个参数指向一个字符串的资源ID,如果存在多个字符串,则在开始时会弹出对话框让你选择采用哪个模板,这时可以将其中一个ID换为不指向字符串资源的id,屏蔽此对话框,也可重载app里的OnFileNew()函数,在里面选择自己需要一开始创建的模板 如:
mfc 实现一分文档对应多个视图
最新推荐文章于 2023-09-07 15:24:22 发布
