Zarovnání položky menu na pravou stranu

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ě.

Zpět

Autor: The Bozena

iReklama.cz - nový reklamní systém
iReklama.cz - nový reklamní systém