На этом шаге мы рассмотрим события GUI самой ОС и "собственное" рисование.
e_Native(Message,wParam,lParam)
Это событие дает возможность получать все события графического интерфейса пользователя самой ОС (а не только VPI), которые посылаются окну.
Чтобы разрешить такие сообщения e_Native, вы должны вызвать предикат:
win_EnableHook(Window,boolean OnOff)
с параметром OnOff=b_True.
Если обработчик события e_Native успешно выполнится, то для этого события будет произведена обработка VPI по умолчанию. Если обработчик выполнится неуспешно, то событие (если нужно) будет преобразовано в обычное событие VPI.
Системе управления окнами может быть возвращено значение long.
e_OwnerDraw(CtlType,CtlId,ItemID,Action,State, Window,rct RectItem,long ItemData)
Это событие посылается окну, которое имеет элементы управления с флагами стиля wsf_OwnerDraw или wsf_OwnerDrawVariable. При получении этого события приложение должно нарисовать элемент управления.
e_OwnerMeasureItem(CtlType,CtlId,ItemId, Data)
Это событие посылается окну, которому принадлежат элементы управления с флагом стиля wsf_OwnerDraw, и используется для определения размеров пункта меню, элемента списка и т. д. Размер должен возвращаться как возвращаемое значение предикатом обработчика событий.
На следующем шаге мы рассмотрим перерисовку окна, события от таймера и динамический обмен данными.