ALTE DOCUMENTE
|
||||
Послед 949d317j ;ней частью программы WinMain() Windows. Его целью является получение и обработка сообщений, передаваемых операционной системой. Эти сообщения ставятся в очередь сообщений приложения, откуда они затем (по мере готовности программы) выбираются функцией API GetMessage()
BOOL GetMessage(LPMSG msg, HWND hwnd,
UINT min, UINT max) .
msg. Все сообщения Windows имеют структуру типа MSG, определяемую след 949d317j ;ующим образом:
typedef struct tagMSG
MSG;
hwnd MSG записывается дескриптор окна, которому адресовано сообщение; тип сообщения записывается в 32-разрядное поле message, а дополнительная информация (параметры сообщения) - в поля wParam lParam WPARAM LPARAM typedef UINT LONG
time pt POINT
typedef struct tagPOINT
POINT;
GetMessage() возвратит управление Windows. (Более детально сообщения рассматриваются в след 949d317j ;ующей главе.)
hwnd GetMessage() hwnd NULL
GetMessage() min max
GetMessage()
Внутри цикла обработки сообщений вызываются две функции. Вначале вызывается функция API TranslateMessage(), которая транслирует виртуальные коды клавиш, генерируемые Windows, в клавиатурные сообщения. (Виртуальные коды клавиш рассматриваются в гл. 4.) Хотя это и не является необходимым, большинство приложений вызывают TranslateMessage()
Когда сообщение прочитано и преобразовано, функция API DispatchMcssage() возвращает его обратно к Windows. Windows хранит это сообщение до тех пор, пока оно не будет послано оконной функции приложения.
WinMain() msg.wParam Это значение будет кодом возврата программы.
|