c++ - CWinApp::OpenDocumentFile 创建一个新窗口

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

最近我们将使用 MFC 的 C++ 项目从 VS2008 迁移到 VS2010。

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

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

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

最佳答案

已解决。也许解释会帮助某人:

问题出在 MFC 函数中:

CDocument* CDocManager::OpenDocumentFile(LPCTSTR lpszFileName)

在VS2008中它调用了一个函数

return pBestTemplate->OpenDocumentFile(szPath);

在 VS2010 中它调用另一个函数(具有不同数量的参数)

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

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

关于c++ - CWinApp::OpenDocumentFile 创建一个新窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14363383/

相关文章:

.net - 从VB6到VS 2008(C#或VB)

c++ - 使用 Visual Studio 2008 从 x86 编译 x64 dll

c++ - 如何启用共享对象在运行时访问数据文件 (UNIX)

.net - VS2010 调试/分析时的性能差异

c++ - 如何对包含 const 值的 vector 进行排序

visual-studio-2010 - 安装到GAC中的程序集未在Visual Studio中显示

visual-studio-2010 - 哪里可以下载VS2010专业版? (或者我不能?)

visual-studio-2008 - Visual Studio 2008 资源编辑器对 PNG 很烦人

c++ - 没有从 'Foo' 到 'Foo *const' C++ 的可行转换

c++ - 在 union 中使用指针的正确方法是什么(例如分配和释放内存)?或者有可能吗?