- •Овсянник в.Н. Лабораторные работы по курсу «Объектно-ориентированное программирование»
- •1.Интегрированная среда mvs-2010
- •1.1.Методические указания
- •2.Массивушки и подпрограммочки
- •Прочитайте это задание и методические указания до конца, прежде чем терзать клавиатуру, соседа, преподавателя и пр. Сущности
- •Попробуйте сдать работу, предварительно тщательно протестировав ее на предмет отсутствия хомутов
- •2.1.Методические указания
- •3.Поиск экстремумов с ограничениями или «Брачное агенство»
- •Постановка задачи
- •Задание
- •Листинг файла mAgency.Cpp (с главной функцией)
- •Листинг файла Lib.H
- •Листинг файла Lib.Cpp
- •4.Задача «куча камней»
- •4.1.Постановка задачи.
- •4.2.Методические указания.
- •Некоторые примеры разделения камней на две кучи, которые должна решать ваша программа
- •5.Разработка простого класса
- •5.1.Задание
- •5.2.Описание вариантов заданий
- •5.3.Драгоценные методические указания
- •6.Класс вектор
- •6.1.Пример класса tVector
- •6.2.Класс tVector с перегруженными операциями
- •7.Наследование классов
- •7.1.Задание
- •7.2.Методическая помощь
- •7.3.Описание самых легких вариантов заданий
- •7.4.Контроль качества выполненной работы
- •8.Приложение с окном вида
- •9.Абстрактные классы и виртуальные функции
- •9.1.Задание
- •9.2.Методические указания
- •Void PrintClassNamе1(cBasе *pb) // параметр-указатель
- •Void PrintClassNamе2(cBasе &b) // параметр-ссылка
- •Void PrintClassNamе3(cFirst f) // параметр-значение
- •9.3.Варианты заданий
- •10.Разработка класса контейнера
- •10.1.Задание
- •10.2.Описание вариантов заданий
- •10.3.Методические указания
- •12.Перегрузка векторных и матричных операций
- •12.1.Задание
- •12.2.Бесценные методические указания
- •12.3.Некоторые особенности перегрузки операций
- •12.4.Варианты заданий
- •13.Программирование односвязного списка
- •13.1.Задание
- •13.2.Описание вариантов заданий
- •14.Приложение, основанное на модальном диалоговом окне
- •14.1.Нудные методические указания Модальные и немодальные диалоговые окна
- •Ресурсы и элементы управления
- •Сценарий создания приложения
- •Разбор приложения
- •Усовершенствование приложения
- •15.Приложения
- •15.1.Виды сортировок
- •Классификация сортировок
- •Сортировка массивов
- •15.2.Алгоритм сортировки включением
- •Пример сортировки с помощью прямого включения
- •15.3.Сортировка Шелла
- •Список литературы
14.Приложение, основанное на модальном диалоговом окне
Если программа не работает – это нормально, если работает – значит, Вы не замечаете ошибок
ОВН
Цель работы – освоить разработку приложения, главным и единственным окном которого является модальное диалоговое окно со стандартными элементами управления Windows (4 час.)
Идея этой работы заимствована из материала главы 6 «Модальные диалоговые окна и стандартные элементы управления Windows» работы [1].
Задание.
Ознакомиться с теоретической частью работы по методическим указаниям.
Создать приложение в соответствии с приведенными в названной работе указаниями.
Отладить и добиться работоспособности приложения.
Осмыслить полученный результат, примененный инструментарий и приемы программирования.
Ответить на коварные вопросы преподавателя и получить наивысшую оценку, если повезет
14.1.Нудные методические указания Модальные и немодальные диалоговые окна
Практически все Windows-программы взаимодействуют с пользователем при помощи диалоговых окон. Диалоговое окно может просто содержать какое-то сообщение и кнопку OK, a может быть и очень сложной формой для ввода данных. Иногда этот мощный элемент называют «диалоговой панелью», что, по меньшей мере, несправедливо. Диалоговое окно — настоящее окно, которое можно перемещать и закрывать; оно принимает сообщения и даже отрабатывает команды отрисовки данных в своей клиентской области.
Существует два типа диалоговых окон: модальные (modal) и немодальные (modeless). В этой работе мы разберем более распространенный модальный тип.
Базовый класс MFC CDialog поддерживает как модальные, так и немодальные диалоговые окна. Пока открыто модальное диалоговое окно (например, стандартное Open File — «Открытие файла»), пользователь не может работать ни с каким другим окном программы (точнее, с окном того же потока пользовательского интерфейса). Если же открыто немодальное диалоговое окно, то работать с другим окном программы можно. Пример — диалоговое окно «Find and Replace» редактора Word, которое не мешает работать в основном окне Word – редактировать текст.
Выбор конкретного вида диалогового окна – модальное или не модальное – зависит от характера создаваемого приложения. Программировать модальные диалоговые окна намного проще и это может повлиять на ваше решение в выборе вида диалогового окна.
Ресурсы и элементы управления
Итак, диалоговое окно — это настоящее окно. Но чем же оно все-таки отличается от окон класса CView? Хотя бы тем, что диалоговое окно почти всегда связано с каким-нибудь ресурсом Windows, идентифицирующим элементы управления (кнопки, поля ввода и т.д.) и определяющим структуру окна. Поскольку диалоговый ресурс можно создавать и модифицировать в редакторе диалоговых окон (одном из редакторов ресурсов), диалоговые окна формируются быстро, эффективно и наглядно.
Диалоговое окно содержит набор элементов управления (controls):
поля ввода (edit controls, их еще называют текстовыми окнами — text boxes);
кнопки (buttons);
списки (list boxes);
комбинированные списки (combo boxes);
статический текст или метки (static text);
списки с древовидным отображением данных (tree views);
индикаторы продвижения (progress indicators);
ползунки (sliders) и т. д.
Windows управляет этими элементами, используя специальную, значительно упрощающую труд программиста логику группирования и обхода. На элементы управления можно ссылаться двумя способами:
как на объекты, т.е. экземпляры соответствующих классов. Например, поле ввода реализовано в классе CEdit, кнопки – в классе CButton и т.д.;
по идентификатору (например, IDC_EDIT1), назначенному элементу управления в ресурсе.
Реагируя на действия пользователя, скажем, ввод текста или щелчок кнопки, элементы управления передают сообщения родительскому диалоговому окну.
MFC-библиотека и ИС MVS 2010, тесно взаимодействуя, облегчают программирование диалоговых окон Windows. ИС MVS 2010 генерирует класс, производный от CDialog, а затем позволяет увязать, специальные переменные-члены (связанные переменные) класса «диалоговое окно» с элементами управления. Для назначенных Вами связанных переменных Вы можете указывать, например, такие их параметры, как максимальная длина текста, нижнюю и верхнюю границы диапазона для вводимых числовых данных и т.д. и т.п. После этого мастер ИС генерирует вызовы MFC-функций, отвечающих за обмен данными между управляющими элементами окна и назначенными Вами переменными-членами, а также проверку корректности данных, вводимых пользователем. Очень важно для понимания программирования обработки данных: эти MFC-функции перемещают данные между управляющими элементами (например, полем ввода) и переменными-членами соответствующего класса. Эти переменные-члены мы будем еще называть «связанными переменными», вкладывая в термин «связь» их связь с управляющими элементами.
