Структура приложения Windows
Сообщения от операционной системы и от других потоков помещаются непосредственно в очередь сообщений соответствующего потока. Чаще всего потоки обмениваются сообщениями при помощи функции API SendMessage, которая подробно будет рассмотрена несколько позднее. Кроме того, распространенной практикой является посылка сообщений в собственную очередь сообщений.
Под сообщением в WIN32 понимается структура данных, определенная следующим образом :
typedef struct tagMSG
{ HWND hwnd; // идентификатор окна , которому направлено сообщение
UINT message; // цифровой код (номер) сообщения
WPARAM wParam;// специфическая для каждого сообщения
LPARAM lParam;// информация
DWORD time;// время создания сообщения
POINT pt;// положение курсора в момент создания сообщения
} MSG;
9
Коды сообщений определены как константы с различными префиксами. Сообщениям, предназначенным для управления окнами, соответствуют константы с префиксами WM_. Наиболее часто используемые сообщения будут нами рассмотрены по мере необходимости. Полный список и описание сообщений можно найти в справочной документации и в электронном справочнике WIN32 Programmer’s Reference системы программирования BorlandC++ 5.01.
Для обработки сообщений функция потока должна содержать цикл обработки сообщений (message loop). Основу этого цикла составляют две функции API WIN32, имеющие следующие прототипы:
предыдущаяследующая