关于"建立空文档失败"的问题的分析!
这类问题的出现主要在bool cwinapp::processshellcommand(ccommandlineinfo& rcmdinfo); 【程序编程相关:用VC++进行MapX二次开发::之三-】
许多新手在遇到此类问题时总是措手无策,如果谁有耐心就看看我写的下面这片文章吧. 【推荐阅读:用VC++进行MapX二次开发::之二-】
bool bresult = true; 【扩展信息:表达式求值(上)】函数的关键内容:
switch (rcmdinfo.m_nshellcommand){case ccommandlineinfo::filenew: // 新建 if (!afxgetapp()->oncmdmsg(id_file_new, 0, null, null)) onfilenew(); if (m_pmainwnd == null) bresult = false; break;case ccommandlineinfo::fileopen: if (!opendocumentfile(rcmdinfo.m_strfilename)) bresult = false; break;通过上面的内容我们可以看出:如果没有对id_file_new做映射的话出现问题就在onfilenew();cwinapp对onfilenew的默认实现是调用m_pdocmanager->onfilenew();我们继续解析cdocmanager,它究竟干了些什么?
(首先说明一下cdocmanager它主要的功能是帮助cwinapp是管理文档模板链表与注册文件类型.)//如果模板列表为空的话
if (m_templatelist.isempty()){ trace0("error: no document templates registered with cwinapp.\n"); afxmessagebox(afx_idp_failed_to_create_doc); //报错并返回.这里不会报建立新文档出错.... 下一页