Поделиться через


Меню "Файл" в приложении базы данных MFC

Если вы создаете приложение базы данных MFC и не используете сериализацию, как интерпретировать команды Open, Close, Save и Save As в меню "Файл", пока нет рекомендаций по стилю для этого вопроса, вот несколько вариантов:

  • Полностью исключите команду "Открыть файл".

  • Интерпретируйте команду Open как "открытая база данных" и показывать пользователю список источников данных, распознаваемых приложением.

  • Интерпретирует команду Open, возможно, "открыть профиль". Сохраните файл Open для открытия сериализованного файла, но используйте файл для хранения сериализованного документа, содержащего сведения о профиле пользователя, например предпочтения пользователя, включая его или ее идентификатор входа (необязательно исключая пароль) и источник данных, с которым он или она недавно работал.

Мастер приложений MFC поддерживает создание приложения без команд меню файлов, связанных с документом. Выберите представление базы данных без поддержки файлов на странице поддержки базы данных.

Чтобы интерпретировать команду меню "Файл" специально, необходимо переопределить один или несколько обработчиков команд, в основном в CWinAppпроизводном классе. Например, если вы полностью переопределите OnFileOpenID_FILE_OPEN (реализующее команду), чтобы означать "открыть базу данных:"

  • Не вызывайте версию базового класса, так как вы полностью заменяете реализацию OnFileOpenплатформы по умолчанию.

  • Вместо этого используйте обработчик для отображения диалогового окна с описанием источников данных. Вы можете отобразить такое диалоговое окно, вызвав CDatabase::OpenEx или CDatabase::Open указав параметр NULL. Откроется диалоговое окно ODBC, отображающее все доступные источники данных на компьютере пользователя.

  • Так как приложения базы данных обычно не сохраняют весь документ, возможно, потребуется удалить реализации "Сохранить и сохранить как", если только для хранения сведений профиля не используется сериализованный документ. В противном случае можно реализовать команду "Сохранить", например "зафиксировать транзакцию". Дополнительные сведения об переопределении этих команд см . в техническом примечание 22 .

См. также

Сериализация: сериализация и выходные данные базы данных