Функция ModifyMenu
Declare Function ModifyMenu Lib "user32" Alias "ModifyMenuA" (ByVal hMenu As Long, _
ByVal nPosition As Long, _
ByVal wFlags As Long, _
ByVal wIDNewItem As Long, _
ByVal lpString As Any) As Long
ModifyMenu меняет существующий пункт меню. Существует схожая функция SetMenuItemInfo с более широкими возможностями
- hMenu
- Дескриптор меню
- nPosition
- Изменяемый пункт меню
- wFlags
- Комбинация флагов
MF_BITMAP = &H4& | Пункт меню является растровым изображением
|
MF_BYCOMMAND = &H0& | Пункт меню задается своим идентификатором
|
MF_BYPOSITION = &H400& | Пункт меню задается позицией от начала меню (отсчет от 0)
|
MF_CHECKED = &H8& | Устанавливает галочку
|
MF_DISABLED = &H2& | Блокирует заданный пункт
|
MF_ENABLED | Разблокирует заданный пункт
|
MF_GRAYED = &H1& | Затемняет пункт
|
MF_MENUBARBREAK | Создает новый столбец, отделяемый вертикальной чертой, в всплывающем меню
|
MF_MENUBREAK | Создает новый столбец
|
MF_OWNERDRAW | Прорисовка пункта самой программой
|
MF_POPUP | Задает пункт меню, который будет использоваться как субменю или всплывающее меню
|
MF_SEPARATOR | Разделительная черта
|
MF_STRING | Текстовая строка
|
MF_UNCHECKED | Убирает галочку
|
- wIDNewItem
- Идентификатор нового пункта меню. Если параметр wFlags имеет флаг MF_POPUP, то дескриптор всплывающего меню или подменю
- lpString
- В зависимости от флагов параметра wFlags, может содержать текст пункта меню, дескриптор растра, а также данные для структур
Пример
' Меняем пункт Закрыть в системном меню
' на строку Уничтожить
Dim hwndParent As Long
Dim hMenu As Long
Dim hItem As Long
hwndParent = Me.hWnd
hMenu = GetSystemMenu(hWnd, 0)
hItem = GetMenuItemID(hMenu, 6)
ModifyMenu hMenu, _
hItem, _
MF_BYCOMMAND Or MF_GRAYED, _
-9, _
"&Уничтожить"
Смотри также
AppendMenu, SetMenuItemInfo
Категория
Меню