CWinApp :: OpenDocumentFile创建一个新窗口

时间:2013-01-16 16:44:49

标签: c++ visual-studio-2010 visual-studio-2008 mfc mdi

最近我们移动了使用MFC的C ++项目,从VS2008到VS2010。

还有一个小问题:在我们的MDI界面中,在我们调用函数CWinApp :: OpenDocumentFile之后,应用程序不仅会打开文件,还会创建一个新的空MDI窗口。

如果我们将工具集(项目属性 - >常规 - >平台工具集)更改回v90(VS2008),我们就不会遇到此问题。

也许有人看到同样的问题并知道,我们做错了什么?

2 个答案:

答案 0 :(得分:2)

解决。也许这个解释会对某人有所帮助:

问题在于MFC功能:

CDocument* CDocManager::OpenDocumentFile(LPCTSTR lpszFileName)
在VS2008中,它调用了一个函数

return pBestTemplate->OpenDocumentFile(szPath);
<>在VS2010中,它调用另一个函数(具有不同数量的参数)

return pBestTemplate->OpenDocumentFile(szPath, bAddToMRU, TRUE);

我们没有在我们自己的CMultiDocTemplate实现中重写

答案 1 :(得分:0)

有效的是docmgr.cpp文件发生了变化,调用了opendocumentfile函数。

如果您从CMultiDocTemplate派生了一个类,请注意此更改。

事实上,你的帖子帮助我在我的应用程序中找到了错误。