Функция 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) |
См. также раздел
Основные понятия
Справочные материалы