建立一份空白文档
许多新手在遇到此类问题时总是措手无策,如果谁有耐心就看看我写的下面这片文章吧。这类问题的出现主要在BOOL CWinApp::ProcessShellCommand(CCommandLineInfo& rCmdInfo);函数的关键内容:BOOL bResult = TRUE; 通过上面的内容我们可以看出:如果没有对ID_FILE_NEW做映射的话出现问题就在OnFileNew();CWinApp对OnFileNew的默认实现是调用m_pDocManager-> OnFileNew();我们继续解析CDocManager,它究竟干了些什么? (首先说明一下CDocManager它主要的功能是帮助CWinApp是管理文档模板链表和注册文件类型.)//如果模板列表为空的话if(m_templateList.IsEmpty()){ no document templates registered with AfxMessageBox(AFX_IDP_FAILED_TO_CREATE_DOC);//报错并返回.这里不会报建立新文档出错。 通过上面的代码我们可以看出,CWinApp的OnFileNew和OnFileOpen分别调用CDocManager的虚拟函数OnFileNew 和OnFileOpen。而在CDocManager里面。通过模板链表选择不同的模板来调用文档模板的OpenDocumentFile();如果传入参数NULL表示新建文件。 下面我们来看看CDocTemplate::OpenDocumentFile()它是一个最关键的函数。因为他