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


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

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

Синтаксис

BOOL GetMenuItemInfoA(
  [in]      HMENU           hmenu,
  [in]      UINT            item,
  [in]      BOOL            fByPosition,
  [in, out] LPMENUITEMINFOA 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 или Юникод этой функции на основе определения константы препроцессора UNICODE. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента 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