<< Предыдущая страница

Содержание

Следующая страница >>

Раздел 1.Основы событийного программирования в Windows

В Windows используется модель управляемого событиями программирования. Этот подход заключается в том, что реакция программы определяется внешними событиями (щелчки мыши, клавиатура и т.д.). Windows сообщает о событии при помощи сообщения, которое описывает некоторое изменение, произошедшее в окружающей приложение среде. Каждое сообщение связывается с конкретным окном приложения, с каждым из которых связана собственная оконная процедура. Приложение Windows получает сообщения при помощи функции интерфейса прикладного программирования GetMessage( ), после чего обращается к Windows посредством функции Dispatch Message( ). Затем Windows сама вызывает соответствующую оконную процедуру и передает ей это сообщение для обработки.

Приложение, предназначенное к выполнению в среде Windows, должно соблюдать определенные правила по своему созданию и регистрации в операционной среде. Точкой входа в приложение является функция WinMain, выполняющая регистрацию оконного класса и создание окна, которое будет получать сообщения Windows. При регистрации класса окна заполняется структура WNDCLASSEX, в которой указывается оконная процедура, обрабатывающая сообщения посылаемые данному окну. Для регистрации и создания окна используется следующая последовательность вызовов API функций: RegisterClassEx – регистрация оконного класса; CreateWindow – создание окна; ShowWindow – отображение окна; UpdateWindow – перерисовка окна. После создания и отображения окна функция WinMain переходит в цикл обработки сообщений, в котором будет находиться до появления сообщения о закрытии приложения. Основная работа приложения будет осуществляться в условной ветви оконной процедуры для данного типа сообщения. Если ветви для данного типа сообщения не предусмотрено, то управление передается обработчику сообщений по умолчанию – DefWindowProc.

Задание 1. Разработать программу Win32 с окном, обладающим перечисленными свойствами, конкретный вид которых указан в соответствующем варианте учебного задания.

Цель: познакомиться с основополагающими правилами создания приложения в Win32.

Таблица 1

Варианты задания 1

№ варианта Вид иконки Вид курсора Цвет фона Стиль Размер x, y, ширина, высота Начальное положение
1 красный

без системного меню

20, 40, 300, 400

нормальное

2 белый без кнопки максимизации 20, 80, 200, 400 минимизированное

3 синий

не растягивающееся

10, 20, 100, 200

максимизированное
4 черный

без бордюров (границ)

20, 40, 300, 80

минимизированное

5 красный

нормальное

20, 40, 100, 300 минимизированное

6 желтый

нормальное

20, 60, 100, 300

минимизированное
7 белый с линейной прокрутки 40, 80, 100, 200 нормальное
8 красный

без кнопки минимизации

10, 20, 300, 400

максимизированное

9 малиновый без границ 10, 20, 40, 80 минимизированное
10 розовый неактивное 10, 20, 140, 160 нормальное
11 желтый

с горизонтальной и вертикальной прокруткой 10, 40, 100, 500

максимизированное

12 коричневый

без заголовка

10, 20, 40, 80

максимизированное

13 оранжевый без заголовка и границ 10, 30, 480, 360 нормальное

14 желтый с прокруткой и без заголовка 10, 20, 210, 280

нормальное

15 оранжевый без системного меню

10, 30, 350, 430

нормальное

16 коричневый

поверх всех окон

15, 40, 300, 400

минимизированное

17 малиновый без кнопки минимизации

10, 70, 350, 430

нормальное
18 желтый не растягивающееся

100, 20, 210, 280

минимизированное

19 серый без заголовка и границ 10, 90, 80, 360 максимизированное
20 зеленый без системного меню 15, 40, 200, 400 нормальное
21 красный без заголовка 10, 90, 200, 360 минимизированное

22 зеленый с прокруткой и без заголовка 100, 90, 200, 360 нормальное
23 серый с горизонтальной и вертикальной прокруткой 95, 40, 300, 400 нормальное
24 синий не растягивающееся

100, 20, 210, 280

максимизированное
25 черный без заголовка и границ 95, 40, 320, 300 максимизированное

Указания. Для построения остова приложения в среде Microsoft Visual Studio нужно выбрать проект – приложение Win32 и далее пример программы “Hello World”.