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