Структура MENUITEMINFO содержит информацию о пункте меню.
Синтаксис
typedef struct tagMENUITEMINFO { |
Члены структуры
cbSize
Размер структуры, в байтах. Вызывающая программа должна установить этот параметр в sizeof (MENUITEMINFO).
fMask
Извлекает или устанавливает члены. Этот член может состоять из одного или нескольких этих значений.
Значение | Предназначение |
|
Microsoft ® Windows ® 98/Windows Millennium Edition (Windows Me), Windows 2000/Windows XP: Извлекает или устанавливает член hbmpItem. |
MIIM_CHECKMARKS | Извлекает или устанавливает члены hbmpChecked и hbmpUnchecked. |
MIIM_DATA | Извлекает или устанавливает член dwItemData. |
MIIM_FTYPE | Windows 98/Windows Me, Windows 2000/Windows XP: Извлекает или устанавливает член fType. |
|
Извлекает или устанавливает член wID. |
|
Извлекает или устанавливает член fState. |
|
Windows 98/Windows Me, Windows 2000/Windows XP: Извлекает или устанавливает член dwTypeData. |
|
Извлекает или устанавливает член hSubMenu. |
|
|
fType
Тип пункта меню. Этот член может состоять из одного или нескольких ниже следующих значений.
Значение | Предназначение |
MFT_BITMAP |
|
MFT_MENUBARBREAK | Помещает пункт меню в новую строку (для строки меню) или в новом столбце (для "выпадающего" меню, подменю или контекстного меню). Для "выпадающего" меню, подменю или контекстного меню, вертикальная линия отделяет новый столбец от старого. |
MFT_MENUBREAK | Помещает пункт меню в новую строку (для строки меню) или в новом столбце (для "выпадающего" меню, подменю или контекстного меню). Для "выпадающего" меню, подменю или контекстного меню, столбцы не отделяются вертикальной линией. |
MFT_OWNERDRAW |
|
|
|
|
Выравнивает по правой стороне пункт меню и любые последующие пункты. Это значение допустимо только тогда, если пункт меню находится в строке меню. |
|
Windows 95/98/Me, Windows 2000/XP: Устанавливает, что ориентация каскада меню справа налево (значение по умолчанию - слева направо). Этот флажок используется для, поддержания ориентации справа налево в таких языках как арабский и еврейский язык. |
|
|
|
|
Значение | Предназначение |
MFS_CHECKED |
|
|
Устанавливает, что этот пункт меню - по умолчанию. Меню может содержать только один заданный по умолчанию пункт меню, который отображается на экране полужирным шрифтом. |
|
|
|
Включает в работу пункт меню, чтобы он мог быть выбран. Это - заданное по умолчанию состояние. |
|
|
|
Выделяет пункт меню. |
|
|
|
Удаляет выделение пункта меню. Это - заданное по умолчанию состояние. |
Дескриптор "выпадающего" меню или подменю, связанного с пунктом меню. Если пункт меню - не пункт, который открывает "выпадающее" меню или подменю, этот член равен ПУСТО (NULL). Чтобы использовать hSubMenu, установите член fMask в MIIM_SUBMENU.
hbmpChecked
hbmpUnchecked
dwItemData
dwTypeData
Чтобы извлечь пункт меню типа MFT_STRING, сначала найдите размер строки, устанавливая член dwTypeData структуры MENUITEMINFO в значение ПУСТО (NULL), а затем вызовите функцию GetMenuItemInfo. Значение cch+1 - необходимый размер. Затем выделите буфер этого размера, поместите указатель на буфер в член dwTypeData, увеличьте cch, и вызовите функцию GetMenuItemInfo еще раз, чтобы заполнить буфер строкой. Если извлеченный пункт меню имеет какой-либо другой тип, тогда GetMenuItemInfo устанавливает член dwTypeData в значение, тип которого определяется членом fType.
При использовании функцией SetMenuItemInfo, этот член должен содержать значение, тип которого определяется членом fType.
Windows 98/Me и Windows 2000/XP: dwTypeData используется только тогда, если флажок MIIM_STRING установлен в члене fMask .
cch
Длина текста пункта меню, в TCHARs, когда получена информация о пункте меню типа MFT_STRING. Однако, cch используется только тогда, если флажок MIIM_TYPE - установлен в члене fMask и равняется нулю в противном случае. К тому же, cch игнорируется, когда содержание пункта меню устанавливается при помощи вызова SetMenuItemInfo.
Обратите внимание! на то, что это, перед вызовом GetMenuItemInfo, приложение должно установить в члене cch длину буфера, на который указывает член dwTypeData. Если извлеченный пункт меню имеет тип MFT_STRING (как обозначено членом fType), тогда GetMenuItemInfo изменяет cch до длины текста пункта меню. Если извлеченный пункт меню имеет какой-либо другой тип, GetMenuItemInfo устанавливает поле cch в нуль. |
Windows 98/Me, Windows 2000/XP: член cch используется njulf, когда флажок MIIM_STRING - установлен в члене fMask .
hbmpItem
Windows 98/Me, Windows 2000/XP: Дескриптор точечного рисунка, который будет отображен, или этого может быть одним из значений в нижеследующей таблице. Этот член используется тогда, когда флажок MIIM_BITMAP - установлен в члене fMask.Значение | Предназначение |
HBMMENU_CALLBACK | Точечный рисунок рисуемый окном, которое владеет меню. Приложение должно обрабатывать сообщения WM_MEASUREITEM и WM_DRAWITEM . |
|
Кнопка закрывающая строку меню. |
|
Отключение кнопки, закрывающей строку меню. |
|
Кнопка свертывания строки меню. |
|
Отключение кнопки, свертывающей строку меню. |
|
Кнопка восстановления строки меню. |
|
Кнопка закрывающая подменю. |
|
Кнопка развертывающая подменю. |
|
Кнопка свертывающая подменю. |
|
Кнопка восстанавливающая подменю. |
|
Значок Windows или значок окна, определяемого в члене dwItemData. |
Замечания
Меню может использовать текст или точечные рисунки, но не оба.
Структура MENUITEMINFO используется функциями GetMenuItemInfo, InsertMenuItem и SetMenuItemInfo.
Windows 98/Me и Windows 2000/XP: Меню может использовать текст или точечные рисунки, или оба.
Смотри также
Краткий обзор Меню, GetMenuItemInfo, InsertMenuItem, SetMenuItemInfo, WM_DRAWITEM, WM_MEASUREITEM
Размещение и совместимость MENUITEMINFO |
|
Windows. NET Server |
Да |
Windows XP |
Да |
Windows 2000 |
Да |
Windows NT |
Да версии 4.0 и выше |
Windows Me |
Да |
Windows 98 |
Да |
Windows 95 |
Да |
Импортируемая библиотека |
- |
Заголовочный файл |
|
- объявлено в |
Winuser.h |
- включено в |
Windows.h |
Unicode |
Нет |
Замечания по платформе |
Не имеется |