Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
OOP_Lab_16_17.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
14.46 Mб
Скачать

14.Приложение, основанное на модальном диалоговом окне

Если программа не работает – это нормально, если работает – значит, Вы не замечаете ошибок

ОВН

Цель работы – освоить разработку приложения, главным и единственным окном которого является модальное диалоговое окно со стандартными элементами управления Windows (4 час.)

Идея этой работы заимствована из материала главы 6 «Модальные диалоговые окна и стандартные элементы управления Windows» работы [1].

Задание.

  1. Ознакомиться с теоретической частью работы по методическим указаниям.

  2. Создать приложение в соответствии с приведенными в названной работе указаниями.

  3. Отладить и добиться работоспособности приложения.

  4. Осмыслить полученный результат, примененный инструментарий и приемы программирования.

  5. Ответить на коварные вопросы преподавателя и получить наивысшую оценку, если повезет

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-функции перемещают данные между управляющими элементами (например, полем ввода) и переменными-членами соответствующего класса. Эти переменные-члены мы будем еще называть «связанными переменными», вкладывая в термин «связь» их связь с управляющими элементами.

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