Раздел 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”.