Азбука программирования в Win32 API


Азбука программирования в Win32 API - стр. 20


Отображение окна на экране

Теперь мы подошли к функции ShowWindowQ. Функция отображает окно на экране (отметьте - отображает окно как набор атрибутов, таких как заголовок, рамка, кнопки и т. д.). Первый аргумент этой функции -хэндл созданного только что окна. Второй аргумент определяет, в каком виде окно будет отображено на экране. В нашем случае мы просто взяли и подставили значение nCmdShow, указанное при вызове WinMain(). Как правило, при первом запуске окна функции WinMain() передается значение SW_SHOWDEFAULT, при последующих запусках значение этого параметра может изменяться в соответствии со сложившимися обстоятельствами. Я не рекомендую указывать в качестве второго пара­метра функции ShowWindowQ значение, отличное от передаваемого при вызове WinMain(). Тем самым вы лишите Win32 API некоторых возмож­ностей по управлению окном.

Функция UpdateWindowQ посылает функции окна сообщение WM_PAINT, которое заставляет окно ПЕРЕРИСОВАТЬСЯ, т. е. прори­совать не набор атрибутов, за прорисовку которых отвечает Windows, a изображение в рабочей области окна, за что должна отвечать непосредст­венно программа.

Итак, класс окна зарегистрирован, экземпляр окна создан и выдан на отображение. На очереди -

Запуск и завершение цикла обработки сообщений

Мы уже говорили, что по аналогии с человеческим организмом, со­общения играют роль крови, а цикл обработки - роль сердца, которое эту кровь прокачивает.

Что такое сообщение? Сообщение - это небольшая структура, опреде­ленная в заголовочном файле следующим образом:

typcdcf struct tagMSG )

HWND        hwnd;

UINT        message;

WPARAM      wParam;

LPARAM      IParam;

DWORD       lime;

POINT       pi; } MSG, *PMSG, NEAR *NPMSG, FAR *LPMSG;

23

Первое поле этой структуры вопросов не вызывает - это хэндл окна, которому адресовано сообщение. Второе поле - номер сообщения. Каж­дое сообщение имеет свой идентификатор. Все идентификаторы сообще­ний начинаются с букв WM, что, возможно, означает «Windows Message». Третье и четвертое поля содержат параметры сообщения. Для каждого сообщения они различны. Назначение поля time в объяснении не нуждается - оно очевидно из названия. В последнее поле (pt) записывает­ся позиция, на которой находился курсор в момент выработки сообще­ния. Все эти поля могут обрабатываться оконной процедурой.




Начало  Назад  Вперед



Книжный магазин