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

Описания RDS

Приложения

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

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

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

А.5.18.3. rdsChangeMenuItem – изменить параметры пункта меню

# Приложения

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

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

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

##### А.5.18.3. rdsChangeMenuItem – изменить параметры пункта меню

Функция rdsChangeMenuItem изменяет параметры ранее созданного постоянного пункта системного меню RDS или контекстного меню блока.

      BOOL RDSCALL rdsChangeMenuItemA(
        RDS_MENUITEM Item, // Идентификатор пункта меню
        RDSCSTR Caption,   // Текст пункта меню (UTF8)
        DWORD Options,     // Флаги (RDS_MENU_*)
        int ShortCutKey,   // Код "горячей клавиши"
        DWORD ShiftFlags,  // Флаги "горячей клавиши"(RDS_K*)
        int MenuFunc,      // Номер функции пункта меню
        int MenuData       // Данные пункта меню
      );
      BOOL RDSCALL rdsChangeMenuItemW(
        RDS_MENUITEM Item, // Идентификатор пункта меню
        RDSWCSTR Caption,  // Текст пункта меню (UTF16)
        DWORD Options,     // Флаги (RDS_MENU_*)
        int ShortCutKey,   // Код "горячей клавиши"
        DWORD ShiftFlags,  // Флаги "горячей клавиши"(RDS_K*)
        int MenuFunc,      // Номер функции пункта меню
        int MenuData       // Данные пункта меню
      );
      // Функция-псевдоним
      BOOL RDSCALL rdsChangeMenuItem(
        RDS_MENUITEM Item, // Идентификатор пункта меню
        RDSXCSTR Caption,  // Текст пункта меню (кодировка по умолчанию)
        DWORD Options,     // Флаги (RDS_MENU_*)
        int ShortCutKey,   // Код "горячей клавиши"
        DWORD ShiftFlags,  // Флаги "горячей клавиши"(RDS_K*)
        int MenuFunc,      // Номер функции пункта меню
        int MenuData       // Данные пункта меню
      );

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

RDS_BMhSDwIDwII (для UTF8) или RDS_BMhWsDwIDwII (для UTF16)

Параметры

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

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

ShortCutKey(int)
  Код «горячей клавиши» пункта меню (только если Item – пункт системного, а не контекстного меню). Это одна из стандартных констант VK_*, используемых в Windows API.
ShiftFlags(DWORD)
  Набор битовых флагов RDS_K*, указывающих на сочетание «горячей клавиши» ShortCutKey со служебными клавишами Ctrl, Alt и Shift.
MenuFunc(int)
  Номер функции пункта меню – при выборе пункта пользователем RDS копирует это число в поле Function структуры RDS_MENUFUNCDATA без какой-либо обработки.
MenuData(int)
  Данные пункта меню – при выборе пункта пользователем RDS копирует это число в поле MenuData структуры RDS_MENUFUNCDATA без какой-либо обработки.

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

TRUE – параметры пункта меню изменены, FALSE – ошибка.

Примечания

Эта функция позволяет изменять параметры постоянного пункта меню (не важно – контекстного или системного), если известен его уникальный идентификатор Item.

Пример

Пример использования функции приведен в §2.12.7 руководства программиста.

См. также

rdsRegisterContextMenuItemEx, rdsRegisterMenuItem, rdsSetMenuItemOptions, rdsEnableMenuItem.