На этом шаге мы рассмотрим использование стандартных окон диалога.
Рассмотрим применение стандартных диалоговых окон Windows путем создания экземпляра MFC-класса CFileDialog. С помощью команды Import выполняется поиск и открытие текстового файла для импорта в приложение STUpload. Напишем обработчик команды Import, который вначале будет только отображать стандартное диалоговое окно, предназначенное для открытия файлов с расширением *.dat. Поскольку задача функции-обработчика состоит в том, чтобы загружать данные приложения, то создадим функцию как метод объекта CSTUploadDoc документа приложения.
Рис.1. Создание функции-обработчика
// String to customize File Dialog CString strFilter = "Data Files (*.dat)|*.dat|All Files (*.*)|*.*||"; CFileDialog aFileDialog( TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, strFilter); int nID = aFileDialog.DoModal();
Рис.2. Редактирование функции OnDataImport()
Этот код создает экземпляр MFC-класса CFileDialog. Передаваемая конструктору строка фильтра определяет, что стандартное диалоговое окно открытия файлов создаст фильтр для отображения только файлов с расширением *.dat, хотя пользователь вправе выбрать и фильтр *.* ("All files" - "все файлы"). Диалоговое окно активизируется вызовом метода CDialog::DoModal() базового класса.
Теперь Вы можете собрать и запустить приложение STUpload. Проверьте работу меню, появление подсказок в строке состояния и всплывающих подсказок. Выберите пункт Import в меню Data, чтобы убедиться, что стандартное диалоговое окно отображается на экране, как ожидалось. На этом этапе мы не можем отобразить созданные только что диалоговые окна. Для них уже есть шаблоны и классы, но код не создает экземпляры этих классов. Эту работу мы выполним позднее.
Текст измененного приложения можно взять здесь (58,1 Кб).
Со следующего шага мы начнем рассматривать реализацию функций приложения.