USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Dicas

  Visual Basic    (Menu/Toobar/Coolbar)

Título da Dica:  Como alinhar um menu na extrema direita da janela
Postada em 9/9/2003 por Ð@®l@n            
O código abaixo utiliza algumas chamadas de API para fazer o alinhamento de um menu a direita. Para testa-lo crie um projeto standard, adicione 3 menus, copie o código no general do form e teste. O último menu será alinhado na extrema direita da tela.

2 linhas do código podem ser alteradas :
If GetMenuItemInfo(hMenu, 2, True, mnuItemInfo) = 0 Then

e

If SetMenuItemInfo(hMenu, 2, True, mnuItemInfo) = 0 Then

O número 2 nestas linhas indica o número do menu que será jogado para a direita (iniciando em 0, o 3o menu). Todos os menus posteriores ao número indicado serão jogados para a direita.

Veja o código :


Option Explicit

Private 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

Private Const MF_STRING = &H0&
Private Const MF_HELP = &H4000&
Private Const MFS_DEFAULT = &H1000&

Private Const MIIM_ID = &H2
Private Const MIIM_SUBMENU = &H4
Private Const MIIM_TYPE = &H10
Private Const MIIM_DATA = &H20

Private Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long

Private Declare Function GetMenuItemInfo Lib "user32" _
Alias "GetMenuItemInfoA" _
(ByVal hMenu As Long, ByVal un As Long, ByVal B As Boolean, _
lpMenuItemInfo As MENUITEMINFO) As Long

Private Declare Function SetMenuItemInfo Lib "user32" _
Alias "SetMenuItemInfoA" _
(ByVal hMenu As Long, ByVal un As Long, ByVal bool As Boolean, _
lpcMenuItemInfo As MENUITEMINFO) As Long

Private Declare Function DrawMenuBar Lib "user32" (ByVal hwnd As Long) _
As Long

Private Sub Form_Load()
Dim mnuItemInfo As MENUITEMINFO, hMenu As Long
Dim BuffStr As String * 80 ' Define as largest possible menu text.

hMenu = GetMenu(Me.hwnd) ' Retrieve the menu handle.
BuffStr = Space(80)
With mnuItemInfo ' Initialize UDT
.cbSize = Len(mnuItemInfo) ' 44
.dwTypeData = BuffStr & Chr(0)
.fType = MF_STRING
.cch = Len(mnuItemInfo.dwTypeData) ' 80
.fState = MFS_DEFAULT
.fMask = MIIM_ID Or MIIM_DATA Or MIIM_TYPE Or MIIM_SUBMENU
End With
' Use the desired item's position for the '3' below (zero-based list).
If GetMenuItemInfo(hMenu, 2, True, mnuItemInfo) = 0 Then
MsgBox "GetMenuItemInfo failed. Error: " & Err.LastDllError, , _
"Error"
Else
mnuItemInfo.fType = mnuItemInfo.fType Or MF_HELP
If SetMenuItemInfo(hMenu, 2, True, mnuItemInfo) = 0 Then
MsgBox "SetMenuItemInfo failed. Error: " & Err.LastDllError, , _
"Error"
End If
End If
DrawMenuBar (Me.hwnd) ' Repaint top level Menu
End Sub
 


CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página