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

Описания RDS

Описание пользователя

Глава 3. Использование стандартных модулей автокомпиляции

§3.7. Краткий перечень вводимых в модель описаний и реакций на события

§3.7.11. Прочие реакции

§3.7.11.7. Выбор пункта меню

# Описание пользователя

## Глава 3. Использование стандартных модулей автокомпиляции

### §3.7. Краткий перечень вводимых в модель описаний и реакций на события

#### §3.7.11. Прочие реакции

##### §3.7.11.7. Выбор пункта меню

Это событие возникает при выборе пользователем пункта, добавленного моделью в контекстное меню блока или системное меню RDS. Примеры моделей, добавляющих свои пункты в контекстное и системное меню, приведены в §3.6.12.

Текст реакции на это событие вводится на вкладке «события» левой панели редактора модели: раздел «разное», подраздел «выбор пункта меню». В классе блока для нее создается функция с именем rdsbcppMenuFunc следующего вида:

      // Block menu item selection
      void rdsbcppBlockClass::rdsbcppMenuFunc(RDS_PMENUFUNCDATA MenuData)
      {
         … пользовательский текст реакции …
      }

Параметр функции MenuData – это указатель на структуру RDS_MENUFUNCDATA, содержащую идентификаторы, присвоенные моделью выбранному пункту меню при его создании:

      typedef struct {
        int Function;   // Номер функции меню
        int MenuData;   // Данные меню
      } RDS_MENUFUNCDATA;
      typedef RDS_MENUFUNCDATA *RDS_PMENUFUNCDATA;

Поля структуры имеют следующий смысл:

Function(int)
  Идентификатор выбранного пользователем пункта меню, указанный при его создании.
MenuData(int)
  Дополнительное целое число, указанное при создании выбранного пункта меню.

При написании моделей блоков без использования модуля автокомпиляции выбору пункта меню соответствует константа RDS RDS_BFM_MENUFUNCTION.