Приложения
Приложение А. Функции, константы и структуры RDS
А.2. События блока и связанные с ними описания
А.2.6. События пользовательского интерфейса и рисования внешнего вида блоков
В реакциях на эти события осуществляется взаимодействие с пользователем и настройка параметров блока, а также программное рисование внешнего вида блока, если это необходимо.
А.2.6.1. RDS_BFM_BLOCKPANEL – уведомление от панели блока в подсистеме
Поток, в котором вызывается функция модели
Главный поток RDS.
Первый параметр функции модели (int CallMode)
Константа RDS_BFM_BLOCKPANEL.
Третий параметр функции модели (void *ExtParam)
Указатель на структуру RDS_PANOPERATION, в которой содержится причина вызова (что именно произошло с панелью блока) и указатель на структуру описания панели.
Возвращаемое функцией модели значение
Не используется, можно возвращать любое значение.
Примечания
Реакция на это событие вызывается при любых действиях с панелью блока в подсистеме: при ее создании, удалении, перемещении, изменении размера и т.п. (см. §2.10.4 руководства программиста). В третьем параметре функции модели при этом передается указатель на структуру RDS_PANOPERATION, описывающую произошедшее с панелью:
typedef struct { RDSINT32 Operation; // Действие с панелью RDS_PPANDESCRIPTION Panel; // Описание панели } RDS_PANOPERATION; typedef RDS_PANOPERATION *RDS_PPANOPERATION;
Поля структуры
- Operation (RDSINT32)
- Действие с панелью, на которое может отреагировать модель блока. В этом поле может содержаться одна из
следующих констант:
RDS_PANOP_CREATE Для панели создан объект-окно Windows. Модель блока теперь может использовать его дескриптор (например, для добавления внутрь панели различных полей ввода). RDS_PANOP_DESTROY Объект-окно Windows, связанный с панелью, будет уничтожен. Модель должна удалить все поля ввода и другие объекты, которые она создала в этом окне. RDS_PANOP_RESIZED Размер панели только что изменен пользователем или одной из сервисных функций RDS. RDS_PANOP_MOVED Панель перемещена пользователем. RDS_PANOP_PAINT Модель должна перерисовать содержимое панели. - Panel (RDS_PPANDESCRIPTION)
- Указатель на структуру описания панели RDS_PANDESCRIPTION. Эта структура создается только на время вызова модели блока для реакции на событие RDS_BFM_BLOCKPANEL. После завершения реакции структура уничтожается, поэтому переданный указатель нельзя запоминать для дальнейшего использования. Если модели блока понадобится описание панели вне реакции на событие RDS_BFM_BLOCKPANEL, она может вызвать сервисную функцию rdsPANGetDescr.
Пример
Пример модели блока, работающей с панелью, рассматривается в §2.10.4 руководства программиста.
См. также