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


Структура 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

Указывает, что элементы, которые нужно получить или задать. Этот элемент может быть одним или несколькими из следующих значений.

Ценность Значение
MIIM_BITMAP
0x00000080
Извлекает или задает элемент hbmpItem.
MIIM_CHECKMARKS
0x00000008
Извлекает или задает элементы hbmpChecked и hbmpUnchecked.
MIIM_DATA
0x00000020
Извлекает или задает элемент dwItemData .
MIIM_FTYPE
0x00000100
Извлекает или задает элемент fType.
MIIM_ID
0x00000002
Извлекает или задает элемент wID.
MIIM_STATE
0x00000001
Извлекает или задает элемент fState.
MIIM_STRING
0x00000040
Извлекает или задает элемент dwTypeData .
MIIM_SUBMENU
0x00000004
Извлекает или задает элемент hSubMenu.
MIIM_TYPE
0x00000010
Извлекает или задает элементы fType и dwTypeData .

MIIM_TYPE заменяется MIIM_BITMAP, MIIM_FTYPEи MIIM_STRING.

fType

Тип: UINT

Тип элемента меню. Этот элемент может быть одним или несколькими из следующих значений.

Значения MFT_BITMAP, MFT_SEPARATORи MFT_STRING нельзя объединить друг с другом. Задайте fMask значение MIIM_TYPE для использованияfType.

fType используется только в том случае, если fMask имеет значение MIIM_FTYPE.

Ценность Значение
MFT_BITMAP
0x000000004L
Отображает элемент меню с помощью растрового рисунка. Слово с низким порядком dwTypeData является дескриптором растрового изображения, а элемент cch игнорируется.

MFT_BITMAP заменяется MIIM_BITMAP и hbmpItem.

MFT_MENUBARBREAK
0x000000020L
Помещает пункт меню в новую строку (для строки меню) или в новом столбце (для раскрывающегося меню, подменю или контекстного меню). В раскрывающемся меню, подменю или контекстном меню вертикальная линия отделяет новый столбец от старого.
MFT_MENUBREAK
0x000000040L
Помещает пункт меню в новую строку (для строки меню) или в новом столбце (для раскрывающегося меню, подменю или контекстного меню). В раскрывающемся меню, подменю или контекстном меню столбцы не разделяются вертикальной линией.
MFT_OWNERDRAW
0x00000100L
Назначает ответственность за рисование элемента меню в окне, владеющем меню. Окно получает сообщение WM_MEASUREITEM перед отображением меню в первый раз и WM_DRAWITEM сообщение при каждом появлении элемента меню. Если это значение указано, элемент dwTypeData содержит определяемое приложением значение.
MFT_RADIOCHECK
0x00000200L
Отображает выбранные пункты меню с помощью переключателя вместо флажка, если элемент hbmpCheckedNULL.
MFT_RIGHTJUSTIFY
0x00004000L
Правой кнопкой оправдан элемент меню и все последующие элементы. Это значение допустимо, только если элемент меню находится в строке меню.
MFT_RIGHTORDER
0x00002000L
Указывает, что меню каскада справа налево (по умолчанию — слева направо). Это используется для поддержки языков справа налево, таких как арабский и иврит.
MFT_SEPARATOR
0x00000800L
Указывает, что элемент меню является разделителем. Разделитель элементов меню отображается как горизонтальная разделительная линия. dwTypeData и элементов cch игнорируются. Это значение допустимо только в раскрывающемся меню, подменю или контекстном меню.
MFT_STRING
0x000000000L
Отображает элемент меню с помощью текстовой строки. Элемент dwTypeData — это указатель на строку, завершаемую значением NULL, а элемент cch — длину строки.

MFT_STRING заменяется MIIM_STRING.

fState

Тип: UINT

Состояние элемента меню. Этот элемент может быть одним или несколькими из этих значений. Задайте MIIM_STATE для использования fState.

Ценность Значение
MFS_CHECKED
0x000000008L
Проверяет элемент меню. Дополнительные сведения о выбранных элементах меню см. в элементе hbmpChecked.
MFS_DEFAULT
0x00001000L
Указывает, что элемент меню является значением по умолчанию. Меню может содержать только один элемент меню по умолчанию, который отображается полужирным шрифтом.
MFS_DISABLED
0x000000003L
Отключает элемент меню и серый цвет, чтобы его нельзя было выбрать. Это эквивалентно MFS_GRAYED.
MFS_ENABLED
0x000000000L
Включает элемент меню, чтобы его можно было выбрать. Это состояние по умолчанию.
MFS_GRAYED
0x000000003L
Отключает элемент меню и серый цвет, чтобы его нельзя было выбрать. Это эквивалентно MFS_DISABLED.
MFS_HILITE
0x00000080L
Выделяет элемент меню.
MFS_UNCHECKED
0x000000000L
Отменяет флажок элемента меню. Дополнительные сведения о очистке элементов меню см. в элементе hbmpChecked.
MFS_UNHILITE
0x000000000L
Удаляет выделение из элемента меню. Это состояние по умолчанию.

wID

Тип: UINT

Определяемое приложением значение, определяющее элемент меню. Задайте MIIM_ID использовать wID.

hSubMenu

Тип: HMENU

Дескриптор раскрывающегося меню или подменю, связанного с элементом меню. Если элемент меню не является элементом, который открывает раскрывающееся меню или подменю, этот элемент NULL. Задайте fMask значение MIIM_SUBMENU, чтобы использовать hSubMenu.

hbmpChecked

Тип: HBITMAP

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

hbmpUnchecked

Тип: HBITMAP

Дескриптор растрового изображения, который будет отображаться рядом с элементом, если он не выбран. Если этот элемент NULL, то растровое изображение не используется. Задайте MIIM_CHECKMARKS для использования hbmpUnchecked.

dwItemData

Тип: ULONG_PTR

Определенное приложением значение, связанное с элементом меню. Задайте для MIIM_DATA fMask значение 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 длину буфера, на который указывает элемент dwType Data . Если полученный пункт меню имеет тип MFT_STRING (как указано элементом fType), GetMenuItemInfo изменяет cch длину текста элемента меню. Если полученный пункт меню имеет другой тип, GetMenuItemInfo задает для поля cch значение нулю.

Элемент cch используется при установке флага MIIM_STRING в элементе fMask.

hbmpItem

Тип: HBITMAP

Дескриптор отображаемого растрового изображения или может быть одним из значений в следующей таблице. Он используется при установке флага MIIM_BITMAP в элементе fMask.

Ценность Значение
HBMMENU_CALLBACK
((HBITMAP) -1)
Растровое изображение, рисуемое окном, принадлежащим меню. Приложение должно обрабатывать WM_MEASUREITEM и WM_DRAWITEM сообщения.
HBMMENU_MBAR_CLOSE
((HBITMAP) 5)
Кнопка "Закрыть" для строки меню.
HBMMENU_MBAR_CLOSE_D
((HBITMAP) 6)
Отключена кнопка закрытия для строки меню.
HBMMENU_MBAR_MINIMIZE
((HBITMAP) 3)
Кнопка "Свернуть" для строки меню.
HBMMENU_MBAR_MINIMIZE_D
((HBITMAP) 7)
Кнопка "Свернуть" для строки меню отключена.
HBMMENU_MBAR_RESTORE
((HBITMAP) 2)
Кнопка "Восстановить" в строке меню.
HBMMENU_POPUP_CLOSE
((HBITMAP) 8)
Кнопка "Закрыть" для подменю.
HBMMENU_POPUP_MAXIMIZE
((HBITMAP) 10)
Кнопка "Развернуть" для подменю.
HBMMENU_POPUP_MINIMIZE
((HBITMAP) 11)
Кнопка "Свернуть" для подменю.
HBMMENU_POPUP_RESTORE
((HBITMAP) 9)
Кнопка "Восстановить" для подменю.
HBMMENU_SYSTEM
(HBITMAP) 1)
Значок Windows или значок окна, указанного в dwItemData.

Замечания

Структура MENUITEMINFO используется с функциями GetMenuItemInfo, InsertMenuItemи SetMenuItemInfo.

Меню может отображать элементы с помощью текста, растровых изображений или обоих элементов.

Заметка

Заголовок winuser.h определяет MENUITEMINFO в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 2000 Профессиональный [только классические приложения]
минимальный поддерживаемый сервер Windows 2000 Server [только классические приложения]
заголовка winuser.h (включая Windows.h)

См. также

концептуальные

GetMenuItemInfo

InsertMenuItem

меню

Справочник

SetMenuItemInfo

WM_DRAWITEM

WM_MEASUREITEM