Структура MENUITEMINFO содержит информацию о пункте меню.
Синтаксис
typedef struct tagMENUITEMINFO {
UINT cbSize;
UINT fMask;
UINT fType;
UINT fState;
UINT wID;
HMENU hSubMenu;
HBITMAP hbmpChecked;
HBITMAP hbmpUnchecked;
DWORD dwItemData;
LPTSTR dwTypeData;
UINT cch;
} MENUITEMINFO, FAR *LPMENUITEMINFO;
Члены сруктуры
cbsize
Размер структуры, в байтах.
fMask
Члены структуры, которые извлекаются или устанавливаются. Этот член структуры может иметь одно или несколько этих значений:
- MIIM_CHECKMARKS - Получает или устанавливает члены структуры hbmpChecked и hbmpUnchecked.
- MIIM_DATA - Получает или устанавливает член структуры dwItemData.
- MIIM_ID - Получает или устанавливает член структуры wID.
- MIIM_STATE - Получает или устанавливает член структуры fState.
- MIIM_SUBMENU - Получает или устанавливает член структуры hSubMenu.
- MIIM_TYPE - Получает или устанавливает члены структуры fType и dwTypeData.
fType
Тип пункта меню. Этот член стуктуры может иметь одно или несколько этих значений:
- MFT_BITMAP - Показывает на экране пункт меню, используя точечный рисунок. Младшее слово члена структуры dwTypeData - дескриптор точечного рисунка, а член cch игнорируется.
- MFT_MENUBARBREAK - Помещает пункт меню в новую строку (для горизонтального меню) или в новый столбец (для "выскакивающего" меню, подменю, или контекстного меню). Для "выскакивающего" меню, подменю, или контекстного меню, вертикальная черта отделяет новый столбец от старого.
- MFT_MENUBREAK - Помещает пункт меню в новую строку (для горизонтального меню) или в новом столбце (для "выскакивающего" меню, подменю, или контекстного меню). Для "выскакивающего" меню, подменю, или контекстного меню, столбцы не отделяются вертикальной чертой.
- MFT_OWNERDRAW - Присваивает ответственность за прорисовку пункта меню к окну, которое владет меню. Окно получает сообщение WM_MEASUREITEM прежде, чем меню покажется на экране впервые, а сообщение WM_DRAWITEM всякий раз, когда внешний вид пункта меню должен быть модифицирован. Если это значение определено, член структуры dwTypeData содержит определяемое программой 32-разрядное значение.
- MFT_RADIOCHECK - Показывает на экране отмеченные маркером пункты меню, используя вместо "галочки" переключатель радиокнопок в том случае, если член структуры hbmpChecked имеет значение ПУСТО (NULL).
- MFT_RIGHTJUSTIFY - Выравненный справа пункт меню и любые последующие пункты. Это значение допустимо, только в том случае, если пункт меню находится в горизонтальном меню.
- MFT_SEPARATOR - Устанавливает, что пункт меню - разделитель. Разделитель пункта меню появляется как горизонтальная разделительная линия. Члены структуры dwTypeData и cch игнорируются. Это значение допустимо только в "выскакивающем" меню, подменю или контекстном меню.
- MFT_STRING - Показывает на экране пункт меню, используя текстовую строку. Член стуктуры dwTypeData - указатель на строку с символом нуля в конце, а член cch равен длине строки.
Значения MFT_BITMAP, MFT_SEPARATOR и MFT_STRING не могут быть объединены друг с другом.
fState
Состояние пункта меню. Этот член стуктуры может иметь одно или несколько этих значений:
- MFS_CHECKED - Отмечает "галочкой" пункт меню. Для получения дополнительной информации об установке отметок "галочкой" пунктов меню, см. член структуры hbmpChecked.
- MFS_DEFAULT - Устанавливает, что пункт меню задан по умолчанию. Меню может содержать только один заданный по умолчанию пункт меню, который отображается полужирным шрифтом.
- MFS_DISABLED - Отключает пункт меню так, чтобы он не мог быть выбран, но не окрашивает его в серый цвет (не делает недоступным).
- MFS_ENABLED - Включает пункт меню так, чтобы он мог быть выбран. Это - заданное по умолчанию состояние.
- MFS_GRAYED - Отключает пункт меню и окрашивает его в серый цвет (делает недоступным) так, чтобы он не мог быть выбран.
- MFS_HILITE - Выделяет цветом пункт меню.
- MFS_UNCHECKED - Снимает "галочку" в пункте меню. Для получения дополнительной информации о снятии "галочки" у пунктов меню, см. член hbmpUnchecked.
- MFS_UNHILITE - Удаляет подсветку (выделение) пункта меню. Это - заданное по умолчанию состояние.
wID
Определяемое программой 16-разрядное значение, которое идентифицирует пункт меню.
hSubMenu
Дескриптор "выскакивающего" меню или подменю, связанного с пунктом меню. Если пункт меню - не пункт, который открывает "выскакивающее" меню или подменю, этот член имеет значение ПУСТО (NULL).
hbmpChecked
Дескриптор точечного рисунка, который показывается на экране рядом с пунктом, если он отмечен "галочкой". Если этот член структуры имеет значение ПУСТО (NULL), используется заданный по умолчанию точечный рисунок. Если определено значение типа MFT_RADIOCHECK, заданный по умолчанию точечный рисунок – жирная точка. Иначе, это - галочка.
hbmpUnchecked
Дескриптор точечного рисунка, который показывается на экране рядом с пунктом, если он не отмечен "галочкой". Если этот член имеет значение ПУСТО (NULL), никакой рисунок не используется.
dwItemData
Определяемое программой значение, связанное с пунктом меню.
dwTypeData
Содержание пункта меню. Значение этого члена структуры зависит от типа пункта меню: MFT_BITMAP, MFT_SEPARATOR или MFT_STRING.
cch
Длина текста пункта меню, когда информация принимается о пункте меню типа MFT_STRING. Это значение нулевое для других типов пункта меню. Этот член структуры игнорируется, когда содержание пункта меню установлено.
Замечания
Структура MENUITEMINFO используется функциями GetMenuItemInfo, InsertMenuItem и SetMenuItemInfo.
Смотри также
GetMenuItemInfo, InsertMenuItem, SetMenuItemInfo, WM_DRAWITEM, WM_MEASUREITEM.