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

Описания RDS

Приложения

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

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

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

А.5.18.7. rdsRegisterContextMenuItemEx – создать постоянный пункт контекстного меню блока

# Приложения

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

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

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

##### А.5.18.7. rdsRegisterContextMenuItemEx – создать постоянный пункт контекстного меню блока

Функция rdsRegisterContextMenuItemEx добавляет в контекстное меню блока, из модели которого она вызвана, постоянный пункт с указанным текстом.

      RDS_MENUITEM RDSCALL rdsRegisterContextMenuItemExA(
        RDSCSTR Caption,  // Текст пункта меню (UTF8)
        DWORD Options,    // Флаги (RDS_MENU_*)
        int MenuFunc,     // Номер функции пункта меню
        int MenuData      // Данные пункта меню
      );
      RDS_MENUITEM RDSCALL rdsRegisterContextMenuItemExW(
        RDSWCSTR Caption, // Текст пункта меню (UTF16)
        DWORD Options,    // Флаги (RDS_MENU_*)
        int MenuFunc,     // Номер функции пункта меню
        int MenuData      // Данные пункта меню
      );
      // Функция-псевдоним
      RDS_MENUITEM RDSCALL rdsRegisterContextMenuItemEx(
        RDSXCSTR Caption, // Текст пункта меню (кодировка по умолчанию)
        DWORD Options,    // Флаги (RDS_MENU_*)
        int MenuFunc,     // Номер функции пункта меню
        int MenuData      // Данные пункта меню
      );

Тип указателя на эту функцию

RDS_MhSDwII (для UTF8) или RDS_MhWsDwII (для UTF16)

Параметры

Caption(RDSCSTR,RDSWCSTR,RDSXCSTR)
  Указатель на строку с текстом пункта меню – этот текст пользователь увидит в самом меню.
Options(DWORD)
  Один или несколько объединенных битовым ИЛИ флагов, задающих параметры пункта меню:

  RDS_MENU_DISABLED | Выбор пункта меню будет запрещен, пункт будет изображаться серым цветом.
  RDS_MENU_CHECKED | Слева от текста пункта меню будет находиться галочка.
  RDS_MENU_DIVIDER | Вместо пункта меню будет изображаться горизонтальная черта-разделитель. Пользователь не может выбрать этот пункт. При установке этого флага другие флаги и параметры Caption, MenuFunc и MenuData игнорируются.
  RDS_MENU_HIDDEN | Пункт меню будет невидимым (скрытым от пользователя).

MenuFunc(int)
  Номер функции пункта меню – при выборе пункта пользователем RDS копирует это число в поле Function структуры RDS_MENUFUNCDATA без какой-либо обработки.
MenuData(int)
  Данные пункта меню – при выборе пункта пользователем RDS копирует это число в поле MenuData структуры RDS_MENUFUNCDATA без какой-либо обработки.

Возвращаемое значение

Идентификатор созданного пункта меню или NULL при возникновении какой-либо ошибки.

Примечания

Эта функция создает новый пункт в контекстном меню блока и возвращает его идентификатор, который можно использовать в других сервисных функциях, работающих с меню. Созданный пункт будет находиться в меню до тех пор, пока он не будет удален функцией rdsUnregisterMenuItem, или до тех пор, пока от создавшего его блока не будет отключена модель.

Добавленный пункт будет иметь текст Caption, его внешний вид будет определяться флагами в параметре Options, с пунктом будет связана пара целых чисел (MenuFunc,MenuData). При выборе этого пункта пользователем модель блока будет вызвана для реакции на событие RDS_BFM_MENUFUNCTION, и в ее параметре ExtParam будет передан указатель на структуру RDS_MENUFUNCDATA, в полях которой будут записаны числа, связанные с выбранным пунктом меню.

См. также

RDS_BFM_MENUFUNCTION, RDS_MENUFUNCDATA, rdsRegisterContextMenuItem, rdsUnregisterMenuItem.