- •Лабораторные работы по курсу «Инструментальные средства визуального программирования»
- •1. Программирование односвязного списка
- •1.1.Задание
- •1.2.Описание вариантов заданий
- •2.Перегрузка векторных и матричных операций
- •2.1.Задание
- •2.2.Бесценные методические указания
- •2.3.Некоторые особенности перегрузки операций
- •3.Классная работа
- •3.1.Постановка задачи
- •2.4.Варианты заданий
- •3.2.Задания
- •3.3.Методические наказания к первой части работы
- •3.4.Методические наказания ко второй части работы
- •4.Алгоритмы
- •Задание
- •Варианты классов и их обработки
- •5.Приложение WinForms (cli)
- •5.1.Задание
- •5.2.Бесценные методические предписания
- •Int nRec;//Число записей файла, оно же будет числом элементов массивов
- •6.Графика в WinForms (cli)
- •6.1.Задание
- •6.2.Бесценные методические предписания
- •6.3.Индивидуальные задания
- •7.1.Задание
- •7.2.Бесценные методические наставления
- •8.Квикли файдингуем рутсы
- •8.1.Дармовые методические рекомендации
- •8.2.Задание
- •Варианты индивидуальных заданий
- •9.Приложение, основанное на модальном диалоговом окне
- •9.1.Нудные методические указания Модальные и немодальные диалоговые окна
- •Ресурсы и элементы управления
- •Сценарий создания приложения
- •Разбор приложения
- •Усовершенствование приложения
- •10.Разработка графического редактора
- •Задание.
- •10.1.Проектирование программы
- •10.2.Разработка интерфейса
- •Установка флагов
- •Создание меню и панели инструментов
- •Обработка сообщений о нажатии кнопки мыши
- •10.3.Рисование
- •10.4.Растягивание фигур
- •10.5.Обновление изображения
- •10.6.Сохранение метафайла на диске и его загрузка
- •Список ссылок
- •Работы, выполненные в осеннем семестре 2016/2017 по курсу ооп
9.Приложение, основанное на модальном диалоговом окне
Если программа не работает – это нормально, если работает – значит, Вы не замечаете ошибок
ОВН
Цель работы – освоить разработку приложения, главным и единственным окном которого является модальное диалоговое окно со стандартными элементами управления Windows (4 час.)
Идея этой работы заимствована из материала главы 6 «Модальные диалоговые окна и стандартные элементы управления Windows» работы [1].
Задание.
Ознакомиться с теоретической частью работы по методическим указаниям.
Создать приложение в соответствии с приведенными в названной работе указаниями.
Отладить и добиться работоспособности приложения.
Осмыслить полученный результат, примененный инструментарий и приемы программирования.
Ответить на коварные вопросы преподавателя и получить наивысшую оценку, если повезет
9.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-функции перемещают данные между управляющими элементами (например, полем ввода) и переменными-членами соответствующего класса. Эти переменные-члены мы будем еще называть «связанными переменными», вкладывая в термин «связь» их связь с управляющими элементами.
