Текущий раздел:

Описания RDS

Приложения

Приложение А. Функции, константы и структуры RDS

А.5. Сервисные функции и макросы RDS

А.5.18. Системное меню и контекстное меню блока

А.5.18.2. rdsAdditionalContextMenuItemEx – добавить временный пункт в контекстное меню блока

# Приложения

## Приложение А. Функции, константы и структуры 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.