MFC 多文档模板切换

来源:互联网 发布:富坚义博 知乎 编辑:程序博客网 时间:2024/06/10 00:01
你的app对象中给你自己的每个模板添加一个模板变量,保存你的所有模板。 然后需要的时候直接使用模板变量来新建文件,不使用系统默认的   ID_FILE_NEW(把它从菜单删掉) //   MyApp.h class   CMyAPP...{ CMultiDocTemplate*   m_pTemplateAaa,   m_pTemplateBbb; ...... } //   MyApp.cpp m_pTemplateAaa   =   new   CMultiDocTemplate( IDR_AAATYPE, RUNTIME_CLASS(CAaaDoc), RUNTIME_CLASS(CChildFrame),   //   custom   MDI   child   frame RUNTIME_CLASS(CAaaView)); AddDocTemplate(m_pTemplateAaa); m_pTemplateBbb   =   new   CMultiDocTemplate( IDI_MYFORM, RUNTIME_CLASS(CBbbDoc), RUNTIME_CLASS(CFormChild),   //   custom   MDI   child   frame RUNTIME_CLASS(CMyForm)); AddDocTemplate(m_pTemplateBbb   ); 然后在菜单添加命令   ID_FILE_NEW_AAA、ID_FILE_NEW_BBB 用ClassWizard添加对应的处理程序OnFileNewAaa、OnFileNewBbb void   CMyApp::OnFileNewAaa(){             ASSERT_KINDOF(CMultiDocTemplate,   m_pTemplateAaa);             m_pTemplateAaa-> OpenDocumentFile(NULL); } void   CMyApp::OnFileNewBbb(){             ASSERT_KINDOF(CMultiDocTemplate,   m_pTemplateBbb);             m_pTemplateAaa-> OpenDocumentFile(NULL); } 以上代码在Visual   C++6.0   sp6中通过。
=======================================================
多模板切换,打开默认模板,可考虑重载 App::OnFileNew() 函数,添加如下代码即可:
POSITION pos = m_pDocManager->GetFirstDocTemplatPosition();
CDocTemplate* pDocTemplate = m_pDocManager->GetNextDocTemplate(pos);
pDoctemplate->openDocumentFile(NULL);

原创粉丝点击