Приложения
Приложение А. Функции, константы и структуры RDS
А.5. Сервисные функции и макросы RDS
А.5.18. Системное меню и контекстное меню блока
А.5.18.2. rdsAdditionalContextMenuItemEx – добавить временный пункт в контекстное меню блока
Функция rdsAdditionalContextMenuItemEx добавляет в контекстное меню блока, из модели которого она вызвана, временный (существующий только до закрытия меню) пункт с указанным текстом.
void RDSCALL rdsAdditionalContextMenuItemExA( RDSCSTR Caption, // Текст пункта меню (UTF8) DWORD Options, // Флаги (RDS_MENU_*) int MenuFunc, // Номер функции пункта меню int MenuData // Данные пункта меню ); void RDSCALL rdsAdditionalContextMenuItemExW( RDSWCSTR Caption, // Текст пункта меню (UTF16) DWORD Options, // Флаги (RDS_MENU_*) int MenuFunc, // Номер функции пункта меню int MenuData // Данные пункта меню ); // Функция-псевдоним void RDSCALL rdsAdditionalContextMenuItemEx( RDSXCSTR Caption, // Текст пункта меню (кодировка по умолчанию) DWORD Options, // Флаги (RDS_MENU_*) int MenuFunc, // Номер функции пункта меню int MenuData // Данные пункта меню );
Тип указателя на эту функцию
RDS_VSDwII (для UTF8) или RDS_VWsDwII (для UTF16)
Параметры
- Caption (RDSCSTR, RDSWCSTR, RDSXCSTR)
- Указатель на строку с текстом пункта меню – этот текст пользователь увидит в самом меню. Если в этом параметре передать NULL, вместо пункта меню будет создан разделитель (аналогично флагу RDS_MENU_DIVIDER, см. ниже).
- Options (DWORD)
- Один или несколько объединенных битовым ИЛИ флагов, задающих параметры пункта меню:
RDS_MENU_DISABLED Выбор пункта меню будет запрещен, пункт будет изображаться серым цветом. RDS_MENU_CHECKED Слева от текста пункта меню будет находиться галочка. RDS_MENU_DIVIDER Вместо пункта меню будет изображаться горизонтальная черта-разделитель. Пользователь не может выбрать этот пункт. При установке этого флага другие флаги и параметры Caption, MenuFunc и MenuData игнорируются. - MenuFunc (int)
- Номер функции пункта меню – при выборе пункта пользователем RDS копирует это число в поле Function структуры RDS_MENUFUNCDATA без какой-либо обработки.
- MenuData (int)
- Данные пункта меню – при выборе пункта пользователем RDS копирует это число в поле MenuData структуры RDS_MENUFUNCDATA без какой-либо обработки.
Примечания
Эту функцию можно вызывать только из реакции модели блока на событие RDS_BFM_CONTEXTPOPUP, возникающее перед открытием контекстного меню блока. Она добавляет в это меню пункт с текстом Caption и внешним видом, определяемым флагами в параметре Options, связывая с ним пару целых чисел (MenuFunc,MenuData). При выборе пункта пользователем модель блока будет вызвана для реакции на событие RDS_BFM_MENUFUNCTION, и в ее параметре ExtParam будет передан указатель на структуру RDS_MENUFUNCDATA, в полях которой будут записаны числа, связанные с выбранным пунктом меню.
Пример
Примеры использования функции rdsAdditionalContextMenuItemEx приведены в §2.12.6, §2.13.3 и §2.13.4 руководства программиста.
См. также
RDS_BFM_MENUFUNCTION, RDS_MENUFUNCDATA, RDS_BFM_CONTEXTPOPUP, rdsRegisterContextMenuItemEx.