Меню "Файл" в приложении базы данных MFC
Если вы создаете приложение базы данных MFC и не используете сериализацию, как интерпретировать команды Open, Close, Save и Save As в меню "Файл", пока нет рекомендаций по стилю для этого вопроса, вот несколько вариантов:
Полностью исключите команду "Открыть файл".
Интерпретируйте команду Open как "открытая база данных" и показывать пользователю список источников данных, распознаваемых приложением.
Интерпретирует команду Open, возможно, "открыть профиль". Сохраните файл Open для открытия сериализованного файла, но используйте файл для хранения сериализованного документа, содержащего сведения о профиле пользователя, например предпочтения пользователя, включая его или ее идентификатор входа (необязательно исключая пароль) и источник данных, с которым он или она недавно работал.
Мастер приложений MFC поддерживает создание приложения без команд меню файлов, связанных с документом. Выберите представление базы данных без поддержки файлов на странице поддержки базы данных.
Чтобы интерпретировать команду меню "Файл" специально, необходимо переопределить один или несколько обработчиков команд, в основном в CWinApp
производном классе. Например, если вы полностью переопределите OnFileOpen
ID_FILE_OPEN
(реализующее команду), чтобы означать "открыть базу данных:"
Не вызывайте версию базового класса, так как вы полностью заменяете реализацию
OnFileOpen
платформы по умолчанию.Вместо этого используйте обработчик для отображения диалогового окна с описанием источников данных. Вы можете отобразить такое диалоговое окно, вызвав
CDatabase::OpenEx
илиCDatabase::Open
указав параметр NULL. Откроется диалоговое окно ODBC, отображающее все доступные источники данных на компьютере пользователя.Так как приложения базы данных обычно не сохраняют весь документ, возможно, потребуется удалить реализации "Сохранить и сохранить как", если только для хранения сведений профиля не используется сериализованный документ. В противном случае можно реализовать команду "Сохранить", например "зафиксировать транзакцию". Дополнительные сведения об переопределении этих команд см . в техническом примечание 22 .