Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
10
Добавлен:
14.05.2015
Размер:
61.95 Кб
Скачать

Лабораторная работа №2

Создание SDI-приложения

Цель работы: изучение технологии создания SDI-приложения, добавления диалогового окна как ресурса и программирования меню.

Задание

1. Изучить информацию о порядке создания проекта, изложенную в разделе "Учебная информация".

2. В соответствии с вариантом, указанным в файле Var02.doc, разработать MFC – проект под именем SdiXX (ХХ – номер варианта). Технология разработки изложена в разделе "Порядок выполнения работы". Добавить в проект диалоговое окно как ресурс. Это окно должно вызываться через меню и выполнять решение задачи. В окно AboutBox вместо имеющихся надписей вписать свою фамилию и дату создания проекта.

3. Составить отчет о работе. В раздел "Выполнение" включить ответы на контрольные вопросы. Продемонстрировать работающий проект на компьютере. Для защиты работы необходимо уметь в течение 10 минут добавить в существующий проект новое диалоговое окно и новый пункт меню, открывающий это окно. Названия пункта меню и класса диалогового окна задаются преподавателем.

Учебная информация

В создаваемом приложении типа Single Document Interface (SDI) основой интерфейса является окно, содержащее стандартное меню, панель инструментов и рабочую область. Обычно в программных проектах диалоговые окна, рассмотренные в предыдущей работе, играют вспомогательную роль: например, их часто используют для задания различных настроек приложения. Главным окном большинства приложений является окно, содержащее меню, панель инструментов, строку состояния и некоторые другие элементы. Это стало стандартом интерфейса в среде Windows. Интегрированная среда Visual C++ позволяет автоматически создать заготовку SDI-приложения, облегчая работу программиста. Однако большинство пунктов меню и кнопок на панели инструментов требуют программирования вручную.

Создание SDI-приложения

Для создания заготовки SDI-приложения необходимо выбрать тип приложения как в работе №1, и на первом шаге мастера Application Wizard установить переключатель Single Document. Остальные настройки можно оставить без изменения и сразу нажать Finish. Будем считать, что для данной учебной информации создано приложение под именем Lab02.

С ледует обратить внимание, что в заготовке SDI-приложения невозможна установка в рабочей области стандартных элементов управления визуально – панель элементов в интегрированной среде в этом режиме отсутствует. Это сделать можно, но программным способом.

Ресурсы

Ресурсами приложения могут быть окна, меню, иконки, тексты и другие элементы. Обычно ресурсы хранятся в конце исполняемого файла приложения. Каждый ресурс имеет уникальный номер – идентификатор. Список ресурсов можно просмотреть на вкладке Resource View окна управления проектом. Для добавления нового ресурса необходимо щелкнуть правой кнопкой мыши в любом месте вкладки Resource View , выбрать Add Resource и в одноименном окне выполнить двойной щелчок по выбранному ресурсу, например, Dialog (рис. 1).

Если новым ресурсом является диалоговое окно, то для управления им должен быть создан соответствующий класс. Для этого следует открыть ресурс в окне для редактирования, щелкнуть по нему правой кнопкой мыши и в контекстном меню выбрать Add Class… . В окне MFC Class Wizard в поле Class name следует задать имя класса и нажать кнопку Finish. Новый класс должен быть добавлен в список классов на вкладке Class View окна управления проектом.

Редактирование меню

Д ля редактирования меню следует открыть на вкладке Resource View папку Menu и выполнить двойной щелчок по значку IDR_MAINFRAME – откроется окно для редактирования меню, показанное на рис. 2.

Для вставки нового пункта меню надо выполнить двойной щелчок мышью по прямоугольнику Type Here, обозначающему очередную позицию меню, и вписать текст пункта. Для командных пунктов меню в окне свойств следует задать идентификатор пункта – ID, например, IDM_SOLVE.

Установить созданный пункт меню в нужную позицию можно перетаскиванием мышью.

Для добавления обработчика пункта меню следует в конструкторе меню щелкнуть по нему правой кнопкой мыши и в контекстном меню выбрать Add Event Handler. Дальнейшие действия аналогичны добавлению обработчика нажатия кнопки в работе №1.

Замечание. При добавлении обработчика выбора пункта меню надо внимательно следить за тем, в какой класс он добавляется. В данном случае в списке Class list окна Event Handler Wizard лучше выбрать класс CLab02View. Возможно расположение обработчика и в других классах. Выбор расположения зависит от эффективности последующего программирования обработчика. Например, кроме CLab02View, обработчик можно добавить в классы CMainFrame или CLab02Doc. Типовой ошибкой является расположение обработчика выбора пункта меню в классе CAboutDlg.

Порядок выполнения работы

1. Создайте заготовку SDI-приложения под именем SdiXX. На первом шаге мастера выберите переключатели: Single Document и MFC Standart.

2. Добавьте в приложение диалоговое окно как ресурс (см. учебную информацию).

3. Добавьте класс поддержки диалогового окна (см. учебную информацию). Имя класса диалогового окна – CDlgXX.

4. Добавьте в диалоговое окно элементы управления. Добавьте в класс CDlgXX переменные для ввода-вывода информации и обработчик нажатия кнопки. В обработчик впишите код программы решения задачи. Указанные действия аналогичны решению задачи в работе 1.

5. В основное меню добавьте пункт "Сервис" и установите его перед пунктом Help. Выпадающее меню для пункта "Сервис" должно содержать один пункт "Решение задачи XX", где XX – номер задачи. Задайте содержательный идентификатор для пункта "Решение задачи XX" (см. учебную информацию).

6. Создайте функцию – обработчик события выбора пункта "Решение задачи XX" (см. учебную информацию). Обработчик должен быть компонентой класса CSdiXXView и загружать диалоговое окно для решения задачи.

Для загрузки диалогового окна следует добавить в файл реализации CSdiXXView.cpp информацию о классе диалогового окна:

#include "DlgXX.h"

Обработчик должен содержать команды:

CDlgXX dlg; // Создали объект dlg

dlg.DoModal(); // Открыли диалоговое окно

7. Добавьте в окно About Box свою фамилию и номер группы.

8. Откомпилируйте и скомпонуйте приложение. Проверьте его работу.

Контрольные вопросы

1. Что такое SDI – приложение?

2. Какая команда в классе основного SDI – окна открывает диалоговое окно?

3. Почему в окне не сохраняется решение задачи после закрытия и повторного открытия диалогового окна?

4. Как называется диалоговое окно по отношению к SDI-окну?

5. Почему для пункта меню "Сервис" в данной работе не требуется задание идентификатора?

Соседние файлы в папке ВУМИП_ЗО