Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
65-96.doc
Скачиваний:
5
Добавлен:
11.11.2019
Размер:
340.99 Кб
Скачать

97

Рис. 3.2. Стандартное диалоговое окно Save As для сохранения файла

Задание 1. Реализация обработчиков команд меню File

Для выполнения операций записи данных, отображаемых в окне представления, в файл и чтения их из файла, необходимо добавить команды в меню программы MуPaint и реализовать обработчики этих команд.

Добавление команд в меню File

  1. Создайте новый каталог C:\VCNET\Tut03\MуPaint. Скопируйте в него все файлы программы MуPaint, полученной ранее.

  2. Откройте проект MуPaint командами File4 Open4 Project, выбрав файл конфигурации проекта MуPaint.vcproj или файл решений MуPaint.sln. Загрузить Microsoft Visual C++.NET и открыть проект можно также двойным щелчком на имени файлов проекта или решений.

  3. Откройте окно Resource View для отображения списка ресурсов программы. Разверните список ресурсов проекта MуPaint .rc.

  4. Откройте редактор меню, выполнив двойной щелчок на идентификаторе IDR_MAINFRAME в узле Menu.

  5. В окне редактора меню откройте меню File. Под командой New в меню File необходимо добавить команды Open..., Save, Save As..., разделитель и команду Recent File. В окне редактора меню выделите разделитель, расположенный под командой New, щелкните правой кнопкой для вызова контекстного меню, выберите команду Insert New для получения дополнительного поля. Введите надпись &Open\tCtrl+O. Откройте окно свойств, в котором увидите введенную надпись и идентификатор ресурса ID_FILE_OPEN137. Можно изменить идентификатор, выбрав его значение в списке идентификаторов (ID_FILE_OPEN).

Рис. 3.3. Окно редактора идентификаторов команд меню

  1. Для добавления подсказки, появляющейся в строке состояния, щелкните в поле Prompt, и справа от него появится сообщение, сгенерированное Visual Studio. Вы можете ввести свой текст в строку подсказки Prompt.

  2. Повторите действия, описанные в пунктах 1 — 6 для добавления в меню команд Save, Save As..., задав в поле Caption окна свойств надписи &Save\tCtrl+S и Save &As… соответственно командам, а в поле ID получите идентификаторы ID_FILE_SAVE138 и ID_FILE_SAVEAS

  3. Добавьте в меню команду Recent File для отображения имен файлов, которые открывались последними. В окне свойств в поле Enabled установите значение False, в поле ID — ID_FILE_MRU_FILE. Команда будет неактивна. Если в программе будет открыт хотя бы один файл, то MFC заменит надпись Recent File именем последнего открытого файла. При создании каркаса приложения MFC Application Wizard устанавливает максимальное количество последних использованных файлов 4.

  4. Сохраните созданное меню с помощью команд File4Save All или File4 Save MуPaint.rc. Если в процессе добавления команд в меню выбирались стандартные идентификаторы, например, ID_FILE_OPEN, ID_FILE_SAVE, то при сохранении проекта в файл MуPaint.rc будут занесены цифровые значение идентификаторов. При следующем открытии проекта в поле ID окна свойств меню вы увидите пятизначные числа как показано на рис. 3.4. В файле сценария ресурсов MуPaint.rc в операторах определения команд меню появляются строки, показанные ниже.

MENUITEM "&Save\tCtrl+S", 57603

Совет Чтобы заданный пользователем идентификатор команды не заменялся цифровым значением при последующих открытиях проекта, замените в файле сценария ресурсов MуPaint.rc цифровые значения идентификаторов команд меню в операторах определения меню на их текстовые значения.

Рис. 3.5. Окно редактора идентификаторов команд меню после изменения файла MiniPain.rc.

  1. Откройте файл сценария ресурсов MуPaint.rc в любом текстовом редакторе, например, в Notepad. Найдите операторы определения меню, замените числовые идентификаторы команд текстовыми значениями, например, MENUITEM "&Save\tCtrl+S", ID_FILE_SAVE. Сохраните и закройте файл MуPaint.rc. В процессе закрытия файла на экран выводится сообщение “This file has been modified outside of Microsoft Visual Studio. Do you want to reload it?”(Файл был модифицирован за пределами Microsoft Visual Studio. Хотите его загрузить повторно?). Нажмите кнопку Yes, окно сообщений закроется. В результате получите меню с идентификаторами команд как на рис. 3.5.

  2. Откройте таблицу горячих клавиш, щелкнув на идентификаторе IDR_MAINFRAME в узле Accelerator окна Resource View. Убедитесь в том, что для команд Open и Save заданы комбинации клавиш Ctrl+O и Ctrl+S, так как мастер MFC Application Wizard определил их при первичной генерации кода исходной программы. Для добавленных команд, если их идентификаторы отличаются от тех, которые есть в таблице, надо добавить ID, Modifier (Модификатор), Key (Клавиша). Для этого щелкните в первом поле пустой строки таблицы, разверните список ID, выберите нужный идентификатор, введите в поле Modifier и Key нужные значения.

  3. Сохраните изменения, выполнив команду File4 Save All или File4 Save MуPaint.rc.

  4. Скомпонуйте программу и запустите ее на выполнение. Вы увидите созданное вами меню. Проверьте, чтобы все команды меню, кроме Recent File, были активны (надписи отображались черным цветом). Если надпись какой-то команды отображается серым цветом, то закройте окно программы. Скорректируйте идентификаторы команд меню в соответствии со значениями, показанными на рис. 3.6, и запустите вновь программу.

Рис. 3.6. Идентификаторы команд меню File

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]