СОЗДАНИЕ И ИСПОЛЬЗОВАНИЕ РЕСУРСОВ В WINDOWS -ПРОГРАММАХ. ОРГАНИЗАЦИЯ МЕНЮ И ДИАЛОГА. РАБОТА С ТАЙМЕРАМИ.
Цель работы. Изучение способов создания и использования ресурсов в приложениях Windows, использования меню, стандартных диалоговых панелей для организации интерфейса с пользователем, применения таймеров для задания временных интервалов.
МЕТОДИЧЕСКИЕ УКАЗАНИЯ:
Задание. Для приведенных ниже вариантов заданий составить Windows-программу в среде Visual С++, в которой производится создание 2 окон: главного окна приложения и временного. Каждое окно имеет свое меню (главное, динамически созданное или плавающее). В рабочей области каждого окна выводится заданный объект (текст, графическая фигура, битовый образ), который с заданной периодичностью перемещается в окне. При выборе пунктов меню в программе должны выполняться действия по изменению размеров, цвета, периодичности выводимого объекта согласно варианту задания.
Требования к программе. В программе должно быть следующее:
- описана главная функция приложения WinMain, в которой регистрируются классы главного и временного окон, создаются и выводятся эти окна, организуется цикл обработки очереди сообщений приложения;
- главное окно приложения должно быть развернутым на весь экран, в заголовке поместить строку из файла ресурсов: Задание №3 по ОСиСП, студ. Фамилия И.О., группа <шифр>. Временное окно в заголовке должно содержать название его стиля, в виде строки из файла ресурсов;
- для всех окон приложения должны быть подключены необходимые ресурсы и описаны соответствующие оконные функции, обрабатывающие сообщения, посылаемые окнам. В этих функциях запрограммировать необходимые операции вывода в окна и другие действия, которые должны быть выполнены при получении сообщений от меню;
|
|
- при запуске приложения необходимо проверять наличие уже запущенного экземпляра данного приложения, выдавать об этом сообщение с помощью функции MessageBox с кнопками "Да", "Нет", по выбору пользователя продолжать или завершать работу.
Организация меню в программе:
- меню главного окна должно включать следующие пункты и подпункты: "Движение объекта" ("Остановить", "Возобновить"), "Параметры объекта" ("Задать исходные", "Изменить в диалоге"), "О программе", "Выход". При выборе пунктов "Остановить", "Возобновить" уничтожается или восстанавливается таймер. Для пунктов: "Задать исходные" – восстанавливаются исходные значения параметров выводимого объекта; "Изменить в диалоге" – вызывается заданный стандартный диалог для изменения указанного параметра объекта. При выборе пункта "О программе", с помощью функции MessageBox выводится сообщение о назначении программы. Пункт "Выход" позволяет завершить программу;
|
|
- меню временного окна должно включать следующие пункты и подпункты: "Размеры объекта" ("Увеличить в 1,2 раза", "Уменьшить в 1,2 раза", "Задать исходные"), "Временной интервал" ("Увеличить в 1,5 раза ", " Уменьшить в 1,5 раза ", "Задать исходный"), "Закрыть окно". При выборе пунктов "Увеличить в 1,2 раза", "Уменьшить в 1,2 раза", "Задать исходные" соответствующим образом пересчитываются текущие размеры объекта или восстанавливаются исходные. Для пунктов "Увеличить в 1,5 раза ", " Уменьшить в 1,5 раза ", "Задать исходный" вначале уничтожается действующий таймер, а затем создается новый таймер с требуемым интервалом времени. Пункт "Закрыть окно" позволяет закрыть временное окно.
Файл ресурсов программы должен быть создан в редакторе ресурсов и включать описания следующих видов ресурсов:
- 2 пиктограммы, которые подключаются к заголовкам главного и временного окон вместо стандартных. В режиме поиска Windows найти файлы типа .ico и выбрать подходящие;
- 2 курсора, которые связываются с окнами и появляются, когда курсор находится в рабочей области этих окон. Выбрать файлы типа .cur из каталога c:\ Windows\Cursors;
|
|
- битовый образ для вывода в окно (если требуется по варианту задания). Выбрать файлы типа .bmp из каталога c:\ Windows;
- таблица из двух строк, используемых для вывода в заголовки окон. Набрать в редакторе ресурсов;
- меню (главное с подменю), которое может использоваться как в главном, так и временном окне согласно варианту задания.
Указания по построению оконных функций:
1. Все параметры выводимого в окно объекта, которые будут определять цвет, размеры, временной интервал и др. в оконной функции можно объявить статическими.
2. Список сообщений, обязательных для обработки функцией окна: WM_CREATE, WM_SIZE, WM_PAINT, WM_COMMAND, WM_TIMER, WM_DESTROY. Остальные сообщения передать на обработку Windows.
3. При обработке сообщений: WM_CREATE - проинициализировать характеристики выводимого в окне объекта начальными значениями, WM_SIZE – получить размеры рабочей области окна (cx, cy).
4. Вывод объекта в окно и его перерисовку производить по сообщению WM_PAINT для текущих параметров этого объекта с использованием соответствующих функций GDI.
5. При обработке сообщений меню WM_COMMAND изменять требуемые характеристики выводимого объекта, объявить всю рабочую область как недействительную (функция InvalidateRect); послать окну сообщение о перерисовке (функция UpdateWindow).
|
|
Порядок выполнения работы:
1. Создать проект Windows-приложения типа "A simple Win32 application".
2. В окне просмотра классов и файлов на вкладке FileView выбрать cpp-файл, затем в окне редактирования ввести исходный текст программы.
3. Создать файл с описанием ресурсов с использованием редактора ресурсов, для чего выполнить следующие действия:
- создать файл с одним ресурсом (например, пиктограммой): выбрать меню Insert -> пункт Resourse -> отметить тип ресурса Icon -> выбрать кнопку New -> загрузить или отредактировать изображение -> выбрать меню File -> выбрать пункт Save -> ввести имя нового файла resource . rc -> нажать кнопку Save.
- подключить файл ресурсов в проект приложения: выбрать меню Project -> пункт Add To Project -> пункт Files -> ввести имя файла resource . rc -> нажать кнопку OK.
- добавить в файл другие виды ресурсов: выбрать меню Insert -> пункт Resourse -> отметить необходимый тип ресурса -> выбрать кнопку New -> отредактировать ресурс -> сохранить изменения.
4. Cоздать исполняемый модуль приложения - трансляция, компоновка (последовательность действий: выбрать меню Build -> выбрать пункт Rebuild All);
5. Проверить результат работы приложения - запуск исполняемого модуля (последовательность действий: выбрать меню Build -> выбрать пункт Execute).
ВАРИАНТЫ ЗАДАНИЙ:
№ вар | Стиль окна | Используемое меню | Выводимый в окно объект | Выполняемые с объектом действия | Вызываемый стандартный диалог и изменяемый параметр |
1 | Главное окно | Меню из файла ресурсов | Битовый образ | Перемещается по периметру окна против часовой стрелки с шагом 30 пикселей с интервалом 0,5 сек | Вызывается стандартное диалоговое окно Color для изменения цвета фона окна |
Временное окно | Динамически созданное меню | Квадрат | Перемещается слева-направо и наоборот с шагом 20 пикселей с интервалом 0,4 сек | ||
2 | Главное окно | Меню из файла ресурсов | Текстовая строка | Перемещается по диагонали сверху-вниз и наоборот с шагом 40,30 пикселей с интервалом 0,5 сек | Вызывается стандартное диалоговое окно Font для изменения размера и стиля шрифта текста |
Временное окно | Всплывающее меню | Битовый образ | Перемещается сверху-вниз и наоборот с шагом 10 пикселей с интервалом 0,2 сек | ||
3 | Главное окно | Динамически созданное меню | Сектор эллипса | Перемещается по боковой диагонали снизу-вверх и наоборот с шагом 20,15 пикселей с интервалом 0,3 сек | Вызывается стандартное диалоговое окно Color для изменения цвета заливки фигуры |
Временное окно | Меню из файла ресурсов | Битовый образ | Перемещается по окружности радиусом 130 пикселей по часовой стрелке на 15о с интервалом 0,5 сек | ||
4 | Главное окно | Динамически созданное меню | Текстовая строка | Перемещается в окне случайным образом с интервалом 1 сек | Вызывается стандартное диалоговое окно Font для изменения размера и стиля шрифта текста |
Временное окно | Всплывающее меню | Окружность | Перемещается по углам окна по часовой стрелке с интервалом 0,7 сек | ||
5 | Главное окно | Меню из файла ресурсов | Сегмент эллипса | Перемещается по окружности радиусом 180 пикселей против часовой стрелки на 10о с интервалом 0,4 сек | Вызывается стандартное диалоговое окно Color для изменения цвета заливки фигуры |
Временное окно | Динамически созданное меню | Текстовая строка | Перемещается в окне случайным образом с интервалом 1 сек | ||
6 | Главное окно | Меню из файла ресурсов | Битовый образ | Перемещается слева-направо и наоборот с интервалом 0,5 сек | Вызывается стандартное диалоговое окно Color для изменения цвета фона окна |
Временное окно | Всплывающее меню | Прямоуголь-ник | Перемещается по углам окна против часовой стрелки с интервалом 1 сек | ||
7 | Главное окно | Динамически созданное меню | Прямоугольник с закруг. краями | Перемещается сверху-вниз и наоборот с интервалом 1 сек | Вызывается стандартное диалоговое окно Color для изменения цвета заливки фигуры |
Временное окно | Меню из файла ресурсов | Текстовая строка | Перемещается по диагонали сверху-вниз и наоборот с интервалом 0,8 сек | ||
8 | Главное окно | Динамически созданное меню | Текстовая строка | Перемещается по боковой диагонали снизу-вверх и наоборот с интервалом 0,5 сек | Вызывается стандартное диалоговое окно Font для изменения размера и стиля шрифта текста |
Временное окно | Всплывающее меню | Битовый образ | Перемещается по периметру окна по часовой стрелке с шагом 20 пикселей с интервалом 0,3 сек | ||
9 | Главное окно | Меню из файла ресурсов | Битовый образ | Перемещается слева-направо и наоборот с интервалом 0,4 сек | Вызывается стандартное диалоговое окно Color для изменения цвета фона окна |
Временное окно | Динамически созданное меню | Прямоугольная рамка | Перемещается сверху-вниз и наоборот с интервалом 1 сек | ||
10 | Главное окно | Меню из файла ресурсов | Текстовая строка | Перемещается по углам окна по часовой стрелке с интервалом 0,5 сек | Вызывается стандартное диалоговое окно Font для изменения размера и стиля шрифта текста |
Временное окно | Всплывающее меню | Битовый образ | Перемещается по углам окна против часовой стрелки с интервалом 1 сек | ||
11 | Главное окно | Динамически созданное меню | Битовый образ | Перемещается по диагонали сверху-вниз и наоборот с интервалом 0,5 сек | Вызывается стандартное диалоговое окно Color для изменения цвета фона окна |
Временное окно | Меню из файла ресурсов | Текстовая строка | Перемещается по боковой диагонали снизу-вверх и наоборот с интервалом 1 сек | ||
12 | Главное окно | Динамически созданное меню | Текстовая строка | Перемещается по периметру окна по часовой стрелке с шагом 20 пикселей с интервалом 0,3 сек | Вызывается стандартное диалоговое окно Font для изменения размера и стиля шрифта текста |
Временное окно | Всплывающее меню | Эллипс | Перемещается по периметру окна против часовой стрелки с шагом 30 пикселей с интервалом 0,5 сек | ||
13 | Главное окно | Меню из файла ресурсов | Окружность | Перемещается слева-направо и наоборот с шагом 20 пикселей с интервалом 0,4 сек | Вызывается стандартное диалоговое окно Color для изменения цвета заливки фигуры |
Временное окно | Динамически созданное меню | Битовый образ | Перемещается сверху-вниз и наоборот с шагом 10 пикселей с интервалом 0,2 сек | ||
14 | Главное окно | Меню из файла ресурсов | Текстовая строка | Перемещается по диагонали сверху-вниз и наоборот с шагом 40 пикселей с интервалом 0,5 с | Вызывается стандартное диалоговое окно Font для изменения размера и стиля шрифта текста |
Временное окно | Всплывающее меню | Прямоугольник | Перемещается по боковой диагонали снизу-вверх и наоборот с шагом 20,15 пикселей с интервалом 0,3 с | ||
15 | Главное окно | Динамически созданное меню | Пятиугольник | Перемещается в окне случайным образом с интервалом 1 сек | Вызывается стандартное диалоговое окно Color для изменения цвета заливки фигуры |
Временное окно | Меню из файла ресурсов | Битовый образ | Перемещается по окружности радиусом 130 пикселей по часовой стрелке на 15о с интервалом 0,5 сек | ||
16 | Главное окно | Динамически созданное меню | Текстовая строка | Перемещается сверху-вниз и наоборот с интервалом 1 сек | Вызывается стандартное диалоговое окно Font для изменения размера и стиля шрифта текста |
Временное окно | Всплывающее меню | Битовый образ | Перемещается по окружности радиусом 180 пикселей против часовой стрелки на 10о с интервалом 0,4 сек | ||
17 | Главное окно | Меню из файла ресурсов | Прямоугольник с закруглен. краями | Перемещается по боковой диагонали снизу-вверх и наоборот с интервалом 0,8 сек | Вызывается стандартное диалоговое окно Color для изменения цвета заливки фигуры |
Временное окно | Динамически созданное меню | Битовый образ | Перемещается по периметру окна по часовой стрелке с шагом 20 пикселей с интервалом 0,3 сек | ||
18 | Главное окно | Меню из файла ресурсов | Текстовая строка | Перемещается по периметру окна против часовой стрелки с шагом 30 пикселей с интервалом 0,5 сек | Вызывается стандартное диалоговое окно Font для изменения размера и стиля шрифта текста |
Временное окно | Всплывающее меню | Квадрат | Перемещается слева-направо и наоборот с шагом 20 пикселей с интервалом 0,4 сек | ||
19 | Главное окно | Динамически созданное меню | Сектор эллипса | Перемещается сверху-вниз и наоборот с шагом 10 пикселей с интервалом 0,2 сек | Вызывается стандартное диалоговое окно Color для изменения цвета заливки фигуры |
Временное окно | Меню из файла ресурсов | Битовый образ | Перемещается по диагонали сверху-вниз и наоборот с шагом 40,30 пикселей с интервалом 0,5 сек | ||
20 | Главное окно | Динамически созданное меню | Текстовая строка | Перемещается по боковой диагонали снизу-вверх и наоборот с шагом 20,15 пикселей с интервалом 0,3 сек | Вызывается стандартное диалоговое окно Font для изменения размера и стиля шрифта текста |
Временное окно | Всплывающее меню | Сегмент эллипса | Перемещается по окружности радиусом 130 пикселей по часовой стрелке на 15о с интервалом 0,5 сек | ||
21 | Главное окно | Меню из файла ресурсов | Битовый образ | Перемещается по окружности радиусом 180 пикселей против часовой стрелки на 10о с интервалом 0,4 сек | Вызывается стандартное диалоговое окно Color для изменения цвета фона окна |
Временное окно | Динамически созданное меню | Прямоугольная рамка | Перемещается по диагонали сверху-вниз и наоборот с интервалом 0,6 сек | ||
22 | Главное окно | Меню из файла ресурсов | Текстовая строка | Перемещается в окне случайным образом с интервалом 1 сек | Вызывается стандартное диалоговое окно Font для изменения размера и стиля шрифта текста |
Временное окно | Всплывающее меню | Битовый образ | Перемещается по углам окна по часовой стрелке с интервалом 0,5 сек | ||
23 | Главное окно | Динамически созданное меню | Эллипс | Перемещается по углам окна против часовой стрелки с интервалом 0,7 сек | Вызывается стандартное диалоговое окно Color для изменения цвета заливки фигуры |
Временное окно | Меню из файла ресурсов | Текстовая строка | Перемещается слева-направо и наоборот с интервалом 0,3 сек | ||
24 | Главное окно | Динамически созданное меню | Битовый образ | Перемещается по диагонали сверху-вниз и наоборот с интервалом 0,5 сек | Вызывается стандартное диалоговое окно Color для изменения цвета фона окна |
Временное окно | Всплывающее меню | Окружность | Перемещается сверху-вниз и наоборот с интервалом 1 сек | ||
25 | Главное окно | Меню из файла ресурсов | Прямоугольник | Перемещается по боковой диагонали снизу-вверх и наоборот с интервалом 0,9 сек | Вызывается стандартное диалоговое окно Color для изменения цвета заливки фигуры |
Временное окно | Динамически созданное меню | Текстовая строка | Перемещается по периметру окна по часовой стрелке с шагом 20 пикселей с интервалом 0,3 сек | ||
26 | Главное окно | Меню из файла ресурсов | Битовый образ | Перемещается по периметру окна против часовой стрелки с шагом 30 пикселей с интервалом 0,5 сек | Вызывается стандартное диалоговое окно Color для изменения цвета фона окна |
Временное окно | Всплывающее меню | Текстовая строка | Перемещается слева-направо и наоборот с шагом 20 пикселей с интервалом 0,4 сек | ||
27 | Главное окно | Динамически созданное меню | Прямоугольник с закруг-ленными краями | Перемещается по периметру окна против часовой стрелки с шагом 30 пикселей с интервалом 0,5 сек | Вызывается стандартное диалоговое окно Color для изменения цвета заливки фигуры |
Временное окно | Меню из файла ресурсов | Текстовая строка | Перемещается слева-направо и наоборот с шагом 20 пикселей с интервалом 0,4 сек | ||
28 | Главное окно | Динамически созданное меню | Текстовая строка | Перемещается сверху-вниз и наоборот с шагом 10 пикселей с интервалом 0,2 сек | Вызывается стандартное диалоговое окно Font для изменения размера и стиля шрифта текста |
Временное окно | Всплывающее меню | Битовый образ | Перемещается по диагонали сверху-вниз и наоборот с шагом 40,30 пикселей с интервалом 0,5 сек | ||
29 | Главное окно | Меню из файла ресурсов | Битовый образ | Перемещается по боковой диагонали снизу-вверх и наоборот с шагом 20,15 пикселей с интервалом 0,3 сек | Вызывается стандартное диалоговое окно Color для изменения цвета фона окна |
Временное окно | Динамически созданное меню | Квадрат | Перемещается по окружности радиусом 130 пикселей по часовой стрелке на 15о с интервалом 0,5 сек |
ЗАДАНИЕ № 4
Дата добавления: 2019-09-13; просмотров: 108; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!