Поделиться через


Функция GetMenuStringA (winuser.h)

Копирует текстовую строку указанного пункта меню в указанный буфер.

Примечание Функция GetMenuString заменена. Используйте функцию GetMenuItemInfo , чтобы получить текст пункта меню.
 

Синтаксис

int GetMenuStringA(
  [in]            HMENU hMenu,
  [in]            UINT  uIDItem,
  [out, optional] LPSTR lpString,
  [in]            int   cchMax,
  [in]            UINT  flags
);

Параметры

[in] hMenu

Тип: HMENU

Дескриптор меню.

[in] uIDItem

Тип: UINT

Элемент меню, который необходимо изменить, определяется параметром uFlag .

[out, optional] lpString

Тип: LPTSTR

Буфер, получающий строку, завершающуюся значением NULL. Если строка длиннее или длиннее lpString, строка усекается и добавляется завершающий символ NULL. Если lpString имеет значение NULL, функция возвращает длину строки меню.

[in] cchMax

Тип: int

Максимальная длина копируемых строк (в символах). Если длина строки превышает максимальное значение, указанное в параметре nMaxCount , дополнительные символы усекаются. Если nMaxCount равно 0, функция возвращает длину строки меню.

[in] flags

Тип: UINT

Указывает, как интерпретируется параметр uIDItem . Этот параметр должен иметь одно из следующих значений.

Значение Значение
MF_BYCOMMAND
0x00000000L
Указывает, что uIDItem предоставляет идентификатор пункта меню. Если ни MF_BYCOMMAND , ни MF_BYPOSITION флаг не указаны, флаг MF_BYCOMMAND является флагом по умолчанию.
MF_BYPOSITION
0x00000400L
Указывает, что uIDItem задает отсчитываемую от нуля относительную позицию элемента меню.

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

Тип: int

Если функция выполнена успешно, возвращаемое значение указывает количество символов, скопированных в буфер, не включая завершающий символ NULL.

Если функция выполняется неудачно, возвращается нулевое значение.

Если указанный элемент не имеет типа MIIM_STRING или MFT_STRING, то возвращаемое значение равно нулю.

Комментарии

Параметр nMaxCount должен быть на один больше, чем число символов в текстовой строке, чтобы вместить завершающий символ NULL.

Если nMaxCount равно 0, функция возвращает длину строки меню.

Предупреждение системы безопасности

Параметр lpString представляет собой буфер TCHAR , а nMaxCount — длину строки меню в символах. Неправильное изменение размера этих параметров может привести к усечению строки, что приведет к возможной потере данных.

Примеры

Пример см. в разделе Создание пользовательских редактируемых ускорителей.

Примечание

Заголовок winuser.h определяет GetMenuString как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header winuser.h (включая Windows.h)
Библиотека User32.lib
DLL User32.dll
Набор API ext-ms-win-ntuser-menu-l1-1-3 (появилось в Windows 10, версия 10.0.14393)

См. также раздел

Основные понятия

GetMenuItemID

Меню

Справочные материалы