Лекция: Методы оконной функции.
Оконная функция Windowобрабатывает сообщения, посылаемые окну ядром Windows. Имя оконной функции присваивает пользователь при регистрации класса, а вызывается она непосредственно ядром Windows. Окно всегда создается на основе класса окна, в котором должны быть описаны основные характеристики главного окна. В частности, при определении адреса оконной функции используется скрытая функция AddressOfв качестве аргумента дополнительной функции GetAddress.wc.lpfnwndproc= GetAddress(AddressOfWindow) К атрибутам класса относят: наличие и тип иконки, курсора, шаблон заполнения фона, наличие меню и ряд других параметров. Для того чтобы можно было использовать в дальнейшем созданный класс окна, его необходимо зарегистрировать в Windows вызовом API-функции RegisterClass (ClassAsWNDCLASS) AsLong Значение, отличное от нуля, возвращаемое этой функцией, означает успешное завершение операции регистрации. Константы, определяющие стиль окна, имеют префикс CS. Стили CS_VREDRAW OrCS_HREDRAW используются, если содержимое окна должно быть перерисовано при изменении размеров по вертикали и горизонтали. Чтобы окно получало сообщения о двойном нажатии кнопок мыши(константы сообщений WM_LBUTTONDBLCLK,WM_MBUTTONDBLCLK,WM_RBUTTONDBLCLK), необходимо еще установить стиль окна CS_DBLCLKS. Поле hInstanse определяет дескриптор на сегмент данных экземпляра программы или дескриптор exe-файла, что позволяет Windows запускать несколько экземпляров одной и той же программы, при использовании одного экземпляра программного кода. Поле hIcon определяет дескриптор иконки для всех окон в минимизированном состоянии, созданных на основе этого класса. Для получения дескриптора стандартной(предопределенной в системе) иконки необходимо воспользоваться функцией LoadIconс нулевым значением первого параметра. В Windows предопределены 5 типов иконок. Поле hCursor определяет дескриптор курсора, используемого в программе. Для использования стандартного курсора в программе необходимо воспользоваться функцией LoadCursorс нулевым значением первого параметра. В Windows предопределены 12 типов курсоров. Поле hbrBackground определяет дескриптор кисти в качестве шаблона заполнения фона всех окон, созданных на основе этого класса. С помощью API-функции GetStockObjectосуществляется выбор стандартного шаблона кисти, например, черного цвета:wc. Hbr Background=GetStockObject(Black_brush) Имеется способ задания цвета фона окна, используя дескриптор кисти одного из объектов Windows(окна,
рамки, заголовка и т. п.), определенный в виде константы с префиксом color_, увеличенной на единицу, например :wc.hbrBackground= COLOR_APPWORKSPACE+1
Оконная функция Windосуществляет непосредствен-ную обработку сообщений. Первый параметр оконной функции-дескриптор окна, которому принадлежит сообщение, то есть дескриптор, возвращаемый функцией CreateWindowEx.Второй параметр-идентификатор(константа) сообщения, остальные-зависят от типа сообщения.