Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лаб раб 1-3 ОС ИУС-10А-5.doc
Скачиваний:
3
Добавлен:
14.11.2019
Размер:
547.84 Кб
Скачать

Лабораторная работа № 2 разработка windows-программ для вывода текста и графики в окна. Обработка сообщений клавиатуры и мыши

Цель работы. Изучение средств вывода в окна текста и графики с использованием функций GDI, способов обработки сообщений клавиатуры и мыши для выполнения операций по изменению цвета, размеров, перемещению выводимых объектов в окнах.

Методические указания:

Задание. Для приведенных ниже вариантов заданий составить Windows-программу в среде Visual С++, в которой производится создание главного окна приложения и двух других окон различных стилей (временное, дочернее) с одинаковым цветом фона. В центре рабочей области каждого окна выводится заданный объект (текст, графическая фигура). При нажатии в рабочей области любого окна левой (правой) кнопки мыши или клавиш перемещения (влево, вправо, вверх, вниз, Home, End, Page Up, Page Down) в программе должны выполняться действия по изменению цвета, размеров, положения выводимого объекта согласно варианту задания.

Требования к программе. В программе должно быть следующее:

- описана главная функция приложения WinMain, в которой регистрируется класс главного окна, создается и выводится это окно, организуется цикл обработки очереди сообщений приложения;

- главное окно приложения должно быть развернутым на весь экран, в заголовке поместить название стиля окна, а в центре рабочей области вывести надпись в две строки: Лабораторная работа №2 по ОС, студ. Фамилия И.О. группа <шифр>;

- для временного и дочернего окон должны быть зарегистрированы их классы, в заголовках этих окон должны быть названия их стилей. В рабочих областях этих окон вывести в центре строку текста или замкнутую графическую фигуру с заполнением своим цветом фона;

- для всех окон приложения должны быть описаны соответствующие оконные функции, обрабатывающие сообщения, посылаемые окнам. В этих функциях запрограммировать необходимые операции вывода в окна и другие дополнительные действия, которые должны быть выполнены при нажатии левой (правой) кнопки мыши в рабочей области окна или клавиш перемещения (влево, вправо, вверх, вниз) согласно варианту задания;

- должны быть вызваны функции создания и отображения всех окон;

- при запуске приложения необходимо проверять наличие уже запущенного экземпляра данного приложения, выдавать об этом сообщение с помощью функции MessageBox с кнопками "Да", "Нет", по выбору пользователя продолжать или завершать работу.

Указания по построению оконных функций:

1. Все параметры, которые будут управлять цветом, размером, положением и др. согласно варианту задания в оконной функции можно объявить статическими.

2. Список сообщений, обязательных для обработки функцией окна: WM_CREATE, WM_SIZE, WM_PAINT, WM_LBUTTONDOWN и(или) WM_RBUTTONDOWN, WM_KEYDOWN, WM_DESTROY (для главного окна). Остальные сообщения передать на обработку Windows.

3. При обработке сообщений: WM_CREATE - проинициализировать характеристики выводимого в окне объекта начальными значениями, WM_SIZE – получить размеры рабочей области окна (cx, cy).

4. Вывод объекта в окно и его перерисовку производить по сообщению WM_PAINT для текущих параметров этого объекта с использованием соответствующих функций GDI.

5. При обработке сообщений WM_LBUTTONDOWN и(или) WM_RBUTTONDOWN изменять требуемые характеристики выводимого объекта, объявить всю рабочую область как недействительную (функция InvalidateRect); послать окну сообщение о перерисовке (функция UpdateWindow).

6. При обработке сообщения WM_KEYDOWN: по коду виртуальной клавиши проверить, нажата ли одна из клавиш перемещения (VK_LEFT, VK_RIGHT, VK_UP, VK_DOWN, VK_HOME, VK_END, VK_PRIOR – Page Up, VK_NEXT – Page Down), если да, то изменить требуемые характеристики выводимого объекта; в конце объявить всю рабочую область окна недействительной и послать окну сообщение о перерисовке.

Примечание. Возможны и другие способы построения оконных функций, не приводящие к дублированию групп операторов и значительному возрастанию объема программного кода.

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

1. Создать проект Windows-приложения.

2. В окне просмотра классов и файлов на вкладке FileView выбрать cpp-файл, затем в окне редактирования ввести исходный текст программы.

3. Cоздать исполняемый модуль приложения - трансляция, компоновка;

4. Проверить результат работы приложения - запуск исполняемого модуля.