Приложения
Приложение А. Функции, константы и структуры RDS
А.5. Сервисные функции и макросы RDS
А.5.18. Системное меню и контекстное меню блока
А.5.18.6. rdsRegisterContextMenuItem – создать постоянный пункт контекстного меню блока
Функция rdsRegisterContextMenuItem добавляет в контекстное меню блока, из модели которого она вызвана, постоянный пункт с указанным текстом. Это устаревшая сервисная функция, сейчас вместо нее обычно используется функция rdsRegisterContextMenuItemEx, обладающая большими возможностями.
RDS_MENUITEM RDSCALL rdsRegisterContextMenuItemA( RDSCSTR Caption, // Текст пункта меню (UTF8) int MenuFunc, // Номер функции пункта меню int MenuData // Данные пункта меню ); RDS_MENUITEM RDSCALL rdsRegisterContextMenuItemW( RDSWCSTR Caption, // Текст пункта меню (UTF16) int MenuFunc, // Номер функции пункта меню int MenuData // Данные пункта меню ); // Функция-псевдоним RDS_MENUITEM RDSCALL rdsRegisterContextMenuItem( RDSXCSTR Caption, // Текст пункта меню (кодировка по умолчанию) int MenuFunc, // Номер функции пункта меню int MenuData // Данные пункта меню );
Тип указателя на эту функцию
RDS_MhSII (для UTF8) или RDS_MhWsII (для UTF16)
Параметры
- Caption (RDSCSTR, RDSWCSTR, RDSXCSTR)
- Указатель на строку с текстом пункта меню – этот текст пользователь увидит в самом меню.
- MenuFunc (int)
- Номер функции пункта меню – при выборе пункта пользователем RDS копирует это число в поле Function структуры RDS_MENUFUNCDATA без какой-либо обработки.
- MenuData (int)
- Данные пункта меню – при выборе пункта пользователем RDS копирует это число в поле MenuData структуры RDS_MENUFUNCDATA без какой-либо обработки.
Возвращаемое значение
Идентификатор созданного пункта меню или NULL при возникновении какой-либо ошибки.
Примечания
Эта функция создает новый пункт в контекстном меню блока и возвращает его идентификатор, который можно использовать в других сервисных функциях, работающих с меню. Созданный пункт будет находиться в меню до тех пор, пока он не будет удален функцией rdsUnregisterMenuItem, или до тех пор, пока от создавшего его блока не будет отключена модель.
Добавленный пункт будет иметь текст Caption, с пунктом будет связана пара целых чисел (MenuFunc,MenuData). При выборе этого пункта пользователем модель блока будет вызвана для реакции на событие RDS_BFM_MENUFUNCTION, и в ее параметре ExtParam будет передан указатель на структуру RDS_MENUFUNCDATA, в полях которой будут записаны числа, связанные с выбранным пунктом меню.
Пример
Пример использования функции rdsRegisterContextMenuItem приведен в §2.12.6 руководства программиста.
См. также
RDS_BFM_MENUFUNCTION, RDS_MENUFUNCDATA, rdsRegisterContextMenuItemEx, rdsAdditionalContextMenuItemEx, rdsUnregisterMenuItem.