Приложения
Приложение А. Функции, константы и структуры RDS
А.2. События блока и связанные с ними описания
А.2.6. События пользовательского интерфейса и рисования внешнего вида блоков
А.2.6.9. RDS_BFM_MENUFUNCTION – выбор пользователем пункта меню
Поток, в котором вызывается функция модели
Главный поток RDS.
Первый параметр функции модели (int CallMode)
Константа RDS_BFM_MENUFUNCTION.
Третий параметр функции модели (void *ExtParam)
Указатель на структуру описания события RDS_MENUFUNCDATA.
Возвращаемое функцией модели значение
Не используется, можно возвращать любое значение.
Примечания
Реакция на событие RDS_BFM_MENUFUNCTION вызывается при выборе пользователем либо постоянного пункта контекстного или системного меню, зарегистрированного моделью блока, либо временного пункта контекстного меню, добавленного в него моделью при реакции на событие RDS_BFM_CONTEXTPOPUP. Постоянные пункты системного меню создаются сервисной функцией rdsRegisterMenuItem и размещаются в меню «» главного окна RDS, с ними можно связывать «горячие клавиши» (см. §2.12.7 руководства программиста) . Постоянные пункты контекстного (то есть выводимого при щелчке правой кнопкой мыши на блоке или свободном месте окна подсистемы, см. §2.12.6 там же) меню создаются сервисными функциями rdsRegisterContextMenuItem и rdsRegisterContextMenuItemEx, временные пункты контекстного меню – сервисными функциями rdsAdditionalContextMenuItem и rdsAdditionalContextMenuItemEx. Вызывая модель блока для реакции на выбор пункта меню, RDS не делает разницы между системным и контекстным меню или между постоянными и временными пунктами – во всех случаях в модель передается константа RDS_BFM_MENUFUNCTION.
Для описания выбранного пункта меню служит структура RDS_MENUFUNCDATA:
typedef struct { RDSINT32 Function; // Номер функции меню RDSINT32 MenuData; // Данные меню } RDS_MENUFUNCDATA; typedef RDS_MENUFUNCDATA *RDS_PMENUFUNCDATA;
Поля структуры
- Function (RDSINT32)
- Идентификатор пункта меню, указанный при его создании.
- MenuData (RDSINT32)
- Дополнительное целое число, указанное при создании выбранного пункта меню.
Пара чисел Function / MenuData указывается при создании пункта меню и должна быть уникальной для данного блока, чтобы модель могла отличить один пункт от другого в реакции на событие RDS_BFM_MENUFUNCTION. Разные блоки могут иметь совпадающие идентификаторы пунктов меню, поскольку при выборе пункта всегда вызывается модель именно того блока, который создал этот пункт.
См. также
RDS_BFM_CONTEXTPOPUP, rdsRegisterContextMenuItem, rdsRegisterContextMenuItemEx, rdsAdditionalContextMenuItem, rdsAdditionalContextMenuItemEx, rdsRegisterMenuItem.