Операционные системы. Программирование в операционной среде Windows
45 4.2. Функция окна Все Windows-программы должны содержать специальную функцию, которая вызывается не самой программой, а операционной системой, когда Windows передает сообщение программе. Эту функцию назьшают функцией окна, или процедурой окна Согласно терминологии Windows, функции, вызываемые системой, называются функциями обратного вызова. Именно через нее осуществляется взаимодействие между программой и системой. Имя функции окна может быть любое, например, WindowsFunc, тип функции - LRESULT CALLBACK. Первое слово LRESULT означает, что функция должна вернуть в качестве результата длинное целое (long) - код завершения, а CALLBACK означает, что это функция обратного вызова. LRESULT CALLBACK WindowsFunс(HWND hWnd, UINT message, WPAFAM wParam, LPARAM IParam) Функция окна имеет 4 параметра, которые характеризуют передаваемое сообщение: дескриптор окна, тип сообщения, последние два зависят от типа сообщения. В этой функции должна быть реализована обработка всех сообщений Windows. Обычно она состоит из оператора switch, в котором на каждое сообщение предусмотрена соответствующая реакция. 4.3. Сообщения Windows Каждое сообщение характеризуется 4 параметрами: дескриптор окна, тип сообщения и два дополнительных параметра, которые зависят от типа сообщения. Первый параметр window handle - это дескриптор окна, которому адресовано сообщение. Он представляет собой уникальный номер, идентифицирующий окно. Второй параметр определяет тип сообщения - message type. Тип сообщения - это один из идентификаторов, определенных в заголовочных файлах Windows. Идентификаторы начинаются с префикса WM_ (Windows Message). Наиболее часто посылаемые сообщения: WM DESTROY (при закрытии окна), WMPAINT (когда окно требует обновления), WM COMMAND (при выборе команды меню), WM CHAR (при нажатии клавиши клавиатуры), WM LBUTTONDOWN (при нажатии левой кнопки мыши), WM SIZE (при изменении размеров окна) и др. Последние два параметра содержат дополнительную информацию, необходимую для интерпретации сообщения, например, для сообщений WM LBUTTONDOWN и WM RBUTTONDOWN, передаются координаты курсора мыши, для WM CHAR - код клавиши, WM COMMAND - идентификатор выбранного пункта меню. Когда сообщение посылается окну программы, все перечисленные параметры сообщения передаются функции окна.
Made with FlippingBook
RkJQdWJsaXNoZXIy MTY0OTYy