你的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中通过。
然后需要的时候直接使用模板变量来新建文件,不使用系统默认的 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中通过。