Postup:
Založte novou
aplikaci, v ní modul a formulář. Ve formuláři definujte nějaké menu.
Do deklarací
modulu zapište následující deklarace:
'Typ nutný
pro API funkce
Type
MENUITEMINFO
cbSize As Long
fMask As Long
fType As Long
fState As Long
wID As Long
hSubMenu As Long
hbmpChecked As Long
hbmpUnchecked As Long
dwItemData As Long
dwTypeData As String
cch As Long
End Type
'API
konstanty
Public
Const MIIM_TYPE = &H10
Public Const MFT_RIGHTJUSTIFY = &H4000
Public Const MFT_STRING = &H0&
'API
funkce
Declare
Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long
Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) As
Long
Declare Function GetMenuItemInfo Lib "user32" Alias "GetMenuItemInfoA"
(ByVal hMenu As Long, ByVal un As Long, ByVal b As Boolean, lpMenuItemInfo
As MENUITEMINFO) As Long
Declare Function SetMenuItemInfo Lib "user32" Alias "SetMenuItemInfoA"
(ByVal hMenu As Long, ByVal un As Long, ByVal bool As Boolean,
lpcMenuItemInfo As MENUITEMINFO) As Long
*
každá deklarace musí být na samostatném řádku
Ve formuláři, na události
Load, napište následující kód:
Dim
MnuInfo As MENUITEMINFO
'ukazatel na menu
mnuH&
= GetMenu(Me.hwnd)
'Nastavení
velikosti struktury
MnuInfo.cbSize
= Len(MnuInfo)
'Nastavení
požadovaného typu informací
MnuInfo.fMask
= MIIM_TYPE
'Vyplnění
MENUITEMIFO pro třetí položku menu
temp&
= GetMenuItemInfo(mnuH&, 2, True, MnuInfo)
'Nastavení
parametrů menu - původní datum + zarovnání doprava
MnuInfo.fType
= MFT_RIGHTJUSTIFY Or MFT_STRING
'Nastavení
délky pro dwTypeData
MnuInfo.cch
= Len("Po&moc")
'Řetězec
pro zobrazení v menu
MnuInfo.dwTypeData
= "Po&moc"
'Nastavení
velikosti struktury
MnuInfo.cbSize
= Len(MnuInfo)
'Nastavení
parametrů pro menu
temp&
= SetMenuItemInfo(mnuH&, 2, True, MnuInfo)
'redraw
menu bar
temp&
= DrawMenuBar(Me.hwnd)
Uvědomte si, že třetí
menu má hodnotu 2, protože se čísluje od nuly. Mimochodem, aby Vám to
makalo, tak si taky alespoň tři menu musíte nadefinovat ve formuláři. A
těmi třemi menu myslím menu v hlavním řádku menu, ne v roletě.
|