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

Извлекает сведения об элементе меню.

Синтаксис

BOOL GetMenuItemInfoW(
  [in]      HMENU           hmenu,
  [in]      UINT            item,
  [in]      BOOL            fByPosition,
  [in, out] LPMENUITEMINFOW lpmii
);

Параметры

[in] hmenu

Тип: HMENU

Дескриптор для меню, содержащего элемент меню.

[in] item

Тип: UINT

Идентификатор или положение элемента меню для получения сведений. Значение этого параметра зависит от значения fByPosition.

[in] fByPosition

Тип: BOOL

Значение uItem. Если этот параметр имеет значение FALSE, uItem является идентификатором пункта меню. В противном случае это положение пункта меню. Дополнительные сведения см. в разделе Доступ к пунктам меню программным способом .

[in, out] lpmii

Тип: LPMENUITEMINFO

Указатель на структуру MENUITEMINFO , которая указывает сведения для извлечения и получения сведений об элементе меню. Обратите внимание, что перед вызовом этой функции необходимо задать для элемента cbSize значение sizeof(MENUITEMINFO) .

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

Тип: BOOL

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

Если функция выполняется неудачно, возвращается нулевое значение. Чтобы получить расширенные сведения об ошибке, используйте функцию GetLastError .

Комментарии

Чтобы получить пункт меню типа MFT_STRING, сначала найдите размер строки, задав для элемента dwTypeDataэлемента MENUITEMINFOзначение NULL , а затем вызвав Метод GetMenuItemInfo. Значение cch+1 — это необходимый размер. Затем выделите буфер такого размера, поместите указатель на буфер в dwTypeData, увеличьте cch на единицу, а затем снова вызовите Метод GetMenuItemInfo , чтобы заполнить буфер строкой.

Если полученный элемент меню имеет какой-то другой тип, то GetMenuItemInfo задает для элемента dwTypeData значение, тип которого указан в элементе fTypefType, а для параметра cch — значение 0.

Примеры

Пример см. в разделе Пример элементов меню Owner-Drawn.

Примечание

Заголовок winuser.h определяет GetMenuItemInfo в качестве псевдонима, который автоматически выбирает версию 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)

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

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

Меню

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

SetMenuItemInfo