最近我们将使用 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/