Функция окна

Вторая часть Windows программы – оконная процедура (функция окна). ОС Windows САМА вызывает ее при обработке сообщений, предназначенных для данного окна.

ВСЕ сообщения передаются в функцию окна, но не на все сообщения мы обязаны реагировать. Если в приложении планируется обрабатывать конкретное сообщение, то оно включается в оператор switch. Остальные сообщения обрабатываются по умолчанию. Для этого их пересылают на обработку в функцию DefWindowProc.

Только одно сообщение мы всегда обязаны перехватывать. Это WM_DESTROY, посылаемое самой Windows в тот момент, когда пользователь закрывает окно (нажимая кнопку закрытия в заголовке окна). Стандартный ответ на WM_DESTROY заключается в вызове функции PostQuitMessage(0). Это соответствует посылке сообщения о выходе из программы со значением нуля в качестве кода возврата.

В качестве параметров функции окна будут передаваться дескриптор текущего окна, код сообщения и его параметры (wParam и lParam). Мы эту функцию НЕ ВЫЗЫВАЕМ.

Вся функция окна в простейшем случае это оператор switch, который анализирует идентификатор сообщений (переменная message), например:

switch (message)

{

case WM_PAINT:

hdc = BeginPaint(hWnd, &ps);

// TODO: добавьте любой код отрисовки...

EndPaint(hWnd, &ps);

break;

case WM_DESTROY:

PostQuitMessage(0);

break;

default:

return DefWindowProc(hWnd, message, wParam, lParam);

}

return 0;

Если тип сообщения не встретился, то такое сообщение отправляется на обработку по умолчанию в функцию DefWindowProc


Работа с окнами

Чтобы создать окно надо:

1. Зарегистрировать класс окна, указав там стиль (собственный или зарегистрированный в Windows) – стиль класса (поле ws.style). Так мы зададим общие свойства окон данного класса.

2. На базе этого класса создать окно (использовать функцию CreateWindow), указав при этом стиль окна. Это уточнение вида и поведения окон.

3. Отобразить окно (использовать функцию ShowWindow).

Стили класса окна

Всего существует 13 констант, задающих стиль окна. Они начинаются с перфикса CS_. Стиль задается константами через битовую операцию «или» (|). Используется в CreateWindow первым параметром.

Таблица 7


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: