比较复杂:
当你在 程序的InitInstance() 函数调用AddDocTemplate()来注册多个文档模板对象时,MFC无法知道应该如何使用哪一个文档模板对象来完成用户的“File”->“New”请求,因此MFC弹出一个对话框,该对话框列出了各种注册过的文档模板对象以允许用户指出应该使用哪一个来调用CDocTemplate::OpenDocumentFile()。显示该对话框的代码在CDocManager::OnFileNew()函数中:
...
if (m_templateList.GetCount() > 1)
{
    CNewTypeDlg dlg(&m_templateList);
    int nID = dlg.DoModal();    // here
    if(nID == IDOK)
   ...
}
...
你不太可能重载CDocTemplate::OpenDocumentFile()函数该函数由CWinApp::OnFileNew()所调用
...
m_pDocManager->OnFileNew();
...你可以通过重载CWinApp::OnFileNew()来控制具体用哪个模板:
void CMyApp::OnFileNew()
{
    m_ptDefaultTemplate->OpenDocumentFile(NULL); // 你指定的缺省模板
}实际可能跟复杂,你可以看看《MFC经典问答》

解决方案 »

  1.   

    wlz47(秋水沉舟):我不是想取消这个对话框,只是想改变一下对话框所选文档的名字,另外《MFC经典问答》上好像没有JIANGSHENG(蒋晟.Net) :怎么换请问?xunknown(未知数):能不能受累帮我再查一下,我找不着这本书
      

  2.   

    你每次新建CMultiDocTemplate对象的时候,都用一个IDR_xxxTYPE作为参数,它代表了这个模板使用的一系列的资源。其中有一个字符串资源,就是String Table中的IDR_xxxTYPE。里面的第二个/n后面的字符串就是在那个对话框里所显示的你可以通过修改它来“改变对话框所选文档的名字”。
      

  3.   

    webber84(糕鱼昏):我知道那个字符串,不过改成中文也可以吗?我试试,行了就给分