Функция SetMenuItemInfo
Declare Function SetMenuItemInfo Lib "user32" Alias "SetMenuItemInfoA" (ByVal hMenu As Long, ByVal uItem As Long, ByVal fByPosition As Long, lpmii As MENUITEMINFO) As Long
SetMenuItemInfo меняет различные атрибуты пунктов меню
- hMenu
- Дескриптор меню, содержащий интересующий пункт
- uItem
- Идентификатор пункта меню для получения информации или его позиция в меню, в зависимости от параметра fByPosition
- fByPosition
- Если параметр имеет ненулевое значение, то uItem показывает пункт, используя его позицию (отсчет от 0). Если равен 0, то uItem является уникальным идентификаторм пункта меню
- lpmii
- Структура MENUITEMINFO, описывающая требуемые изменения для пункта меню
Пример
' Поменяем галочку у пункта меню на точку
' Создайте на форме меню с подменю mnuPunkt,
' в котороме вместо галочки будет выводиться точка
Dim hMenu As Long, hSubMenu As Long, MII As MENUITEMINFO
' Получим дескриптор меню формы
hMenu = GetMenu(Me.hwnd)
' Получим дескриптор первого подменю
hSubMenu = GetSubMenu(hMenu, 0)
' Инициализируем структуру
MII.cbSize = Len(MII)
MII.fMask = MIIM_SUBMENU
' Получим информацию о пункте меню
GetMenuItemInfo hSubMenu, 0, True, MII
' Выводим точку (стиль радиокнопки) вместо галочки
MII.fMask = MIIM_TYPE
MII.fType = MFT_RADIOCHECK
MII.dwTypeData = mnuPunkt.Caption
SetMenuItemInfo hSubMenu, 0, True, MII
mnuPunkt.Checked = Not (mnuPunkt.Checked)
Смотри также
GetMenuItemInfo
Категория
Меню