Структура MENUITEMINFOA (winuser.h)
Содержит сведения об элементе меню.
Синтаксис
typedef struct tagMENUITEMINFOA {
UINT cbSize;
UINT fMask;
UINT fType;
UINT fState;
UINT wID;
HMENU hSubMenu;
HBITMAP hbmpChecked;
HBITMAP hbmpUnchecked;
ULONG_PTR dwItemData;
LPSTR dwTypeData;
UINT cch;
HBITMAP hbmpItem;
} MENUITEMINFOA, *LPMENUITEMINFOA;
Члены
cbSize
Тип: UINT
Размер структуры в байтах. Вызывающий объект должен присвоить этому члену значение sizeof(MENUITEMINFO)
.
fMask
Тип: UINT
Указывает элементы для извлечения или задания. Этот элемент может быть одним или несколькими из следующих значений.
fType
Тип: UINT
Тип элемента меню. Этот элемент может быть одним или несколькими из следующих значений.
Значения MFT_BITMAP, MFT_SEPARATOR и MFT_STRING не могут быть объединены друг с другом. Присвойте параметру fMaskзначение MIIM_TYPE для использования fType.
fType используется только в том случае, если fMask имеет значение MIIM_FTYPE.
Значение | Значение |
---|---|
|
Отображает элемент меню с использованием растрового изображения. Слово нижнего порядка элемента dwTypeData является дескриптором растрового изображения, а элемент cch игнорируется.
MFT_BITMAP заменяется MIIM_BITMAP и hbmpItem. |
|
Places пункт меню в новой строке (для строки меню) или в новом столбце (для раскрывающегося меню, подменю или контекстного меню). Для раскрывающегося меню, подменю или контекстного меню вертикальная линия отделяет новый столбец от старого. |
|
Places пункт меню в новой строке (для строки меню) или в новом столбце (для раскрывающегося меню, подменю или контекстного меню). В раскрывающемся меню, подменю или контекстном меню столбцы не разделяются вертикальной линией. |
|
Назначит ответственность за рисование пункта меню окну, которому принадлежит меню. Окно получает сообщение WM_MEASUREITEM перед первым отображением меню и WM_DRAWITEM сообщение всякий раз, когда необходимо обновить внешний вид пункта меню. Если это значение указано, элемент dwTypeData содержит значение, определяемое приложением. |
|
Отображает выбранные пункты меню с помощью переключателя, а не проверка, если элемент hbmpChecked имеет значение NULL. |
|
Правое обоснование пункта меню и всех последующих элементов. Это значение допустимо, только если пункт меню находится в строке меню. |
|
Указывает, что меню каскадно справа налево (по умолчанию — слева направо). Используется для поддержки языков справа налево, таких как арабский и иврит. |
|
Указывает, что пункт меню является разделителем. Разделитель пунктов меню отображается в виде горизонтальной разделительной линии. Члены dwTypeData и cch игнорируются. Это значение допустимо только в раскрывающемся меню, подменю или контекстном меню. |
|
Отображает элемент меню с помощью текстовой строки. Элемент dwTypeData является указателем на строку, завершаемую null, а член cch — это длина строки.
MFT_STRING заменяется MIIM_STRING. |
fState
Тип: UINT
Состояние элемента меню. Этот элемент может быть одним или несколькими из этих значений. Задайте для параметра fMaskзначение MIIM_STATE для использования fState.
wID
Тип: UINT
Определяемое приложением значение, идентифицирующее элемент меню. Присвойте fMaskзначение MIIM_ID для использования wID.
hSubMenu
Тип: HMENU
Дескриптор раскрывающегося меню или подменю, связанного с элементом меню. Если элемент меню не является элементом, открывающим раскрывающееся меню или подменю, этот элемент имеет значение NULL. Задайте для параметра fMaskзначение MIIM_SUBMENU для использования hSubMenu.
hbmpChecked
Тип: HBITMAP
Дескриптор растрового рисунка, который будет отображаться рядом с элементом, если он выбран. Если этот элемент имеет значение NULL, используется растровое изображение по умолчанию. Если указано значение типа MFT_RADIOCHECK , то растровое изображение по умолчанию является маркером. В противном случае это проверка метка. Задайте для параметра fMaskзначение MIIM_CHECKMARKS для использования hbmpChecked.
hbmpUnchecked
Тип: HBITMAP
Дескриптор растрового рисунка, который будет отображаться рядом с элементом, если он не выбран. Если этот член имеет значение NULL, то растровое изображение не используется. Задайте для параметра fMaskзначение MIIM_CHECKMARKS для использования hbmpUnchecked.
dwItemData
Тип: ULONG_PTR
Определяемое приложением значение, связанное с элементом меню. Присвойте fMaskзначение MIIM_DATA для использования dwItemData.
dwTypeData
Тип: LPTSTR
Содержимое пункта меню. Значение этого элемента зависит от значения fType и используется только в том случае, если флаг MIIM_TYPE установлен в элементе fMask .
Чтобы получить пункт меню типа MFT_STRING, сначала найдите размер строки, задав элементу dwTypeDataэлемента MENUITEMINFOзначение NULL , а затем вызвав GetMenuItemInfo. Значение cch+1 является требуемым размером. Затем выделите буфер такого размера, поместите указатель на буфер в dwTypeData, инкремент cch и вызовите Метод GetMenuItemInfo еще раз, чтобы заполнить буфер строкой. Если полученный элемент меню имеет какой-то другой тип, getMenuItemInfo присваивает члену dwTypeData значение, тип которого задается элементом fType .
При использовании с функцией SetMenuItemInfo этот элемент должен содержать значение, тип которого задается элементом fType .
dwTypeData используется только в том случае, если флаг MIIM_STRING установлен в элементе fMask .
cch
Тип: UINT
Длина текста элемента меню в символах при получении сведений об элементе меню типа MFT_STRING . Однако cch используется только в том случае, если флаг MIIM_TYPE задан в элементе fMask и в противном случае равен нулю. Кроме того, cch игнорируется, если содержимое пункта меню задано путем вызова SetMenuItemInfo.
Обратите внимание, что перед вызовом GetMenuItemInfo приложение должно задать cch длину буфера, на который указывает член dwTypeData . Если полученный элемент меню имеет тип MFT_STRING (как указано элементом fType ), getMenuItemInfo изменяет cch на длину текста элемента меню. Если полученный пункт меню имеет какой-то другой тип, GetMenuItemInfo устанавливает для поля cch нулевое значение.
Элемент cch используется, когда флаг MIIM_STRING установлен в элементе fMask .
hbmpItem
Тип: HBITMAP
Дескриптор отображаемого растрового изображения или одно из значений в следующей таблице. Он используется при установке флага MIIM_BITMAP в элементе fMask .
Значение | Значение |
---|---|
|
Точечный рисунок, рисуемый окном, которому принадлежит меню. Приложение должно обрабатывать WM_MEASUREITEM и WM_DRAWITEM сообщения. |
|
Кнопка "Закрыть" в строке меню. |
|
Отключенная кнопка закрытия для строки меню. |
|
Кнопка свернуть для строки меню. |
|
Отключенная кнопка свернуть для строки меню. |
|
Кнопка "Восстановить" для строки меню. |
|
Кнопка "Закрыть" для подменю. |
|
Кнопка "Развернуть" для подменю. |
|
Кнопка свернуть для подменю. |
|
Кнопка "Восстановить" для подменю. |
|
Значок Windows или значок окна, указанного в dwItemData. |
Комментарии
Структура MENUITEMINFO используется с функциями GetMenuItemInfo, InsertMenuItem и SetMenuItemInfo .
Меню может отображать элементы с помощью текста, растровых рисунков или и того, и другого.
Примечание
Заголовок winuser.h определяет MENUITEMINFO как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Верхняя часть | winuser.h (включая Windows.h) |
См. также раздел
Основные понятия
Справочные материалы