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