CWinApp :: OpenDocumentFile создает новое окно

Недавно мы перенесли наш проект C ++, использующий MFC, с VS2008 на VS2010.

И здесь есть небольшая проблема: в нашем интерфейсе MDI после вызова функции CWinApp :: OpenDocumentFile приложение не только открывает файл, но и создает новое пустое окно MDI.

Если мы изменим набор инструментов (Свойства проекта -> Общие -> Набор инструментов платформы) обратно на v90 (VS2008), мы не столкнемся с этой проблемой.

Может, кто-то видел такую ​​же проблему и знает, что мы делаем не так?

2

Решение

Решаемые. может объяснение кому-нибудь поможет

Проблема была в функции MFC:

CDocument* CDocManager::OpenDocumentFile(LPCTSTR lpszFileName)

в VS2008 это называется функцией

return pBestTemplate->OpenDocumentFile(szPath);

в VS2010 он вызывает другую функцию (с другим количеством параметров)

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

который мы не переопределяли в нашей собственной реализации CMultiDocTemplate

2

Другие решения

фактически происходит изменение в файле docmgr.cpp, который вызывает функцию opendocumentfile.

если вы получили класс из CMultiDocTemplate, следите за этими изменениями.

На самом деле ваш пост помог мне найти ошибку в моем приложении.

0

По вопросам рекламы [email protected]