Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Menu a la derecha

Estas en el tema de Menu a la derecha en el foro de Visual Basic clásico en Foros del Web. Saludos, quiero crear un Menu Ayuda, pero que este situado a la derecha de la ventana, en lugar a la izquierda. ¿Alguna idea?...
  #1 (permalink)  
Antiguo 09/03/2007, 02:26
Avatar de DeYoN  
Fecha de Ingreso: febrero-2004
Mensajes: 81
Antigüedad: 20 años, 3 meses
Puntos: 0
Menu a la derecha

Saludos, quiero crear un Menu Ayuda, pero que este situado a la derecha de la ventana, en lugar a la izquierda.

¿Alguna idea?
  #2 (permalink)  
Antiguo 10/03/2007, 22:37
Avatar de seba123neo  
Fecha de Ingreso: febrero-2007
Ubicación: Esperanza, Santa Fe
Mensajes: 1.046
Antigüedad: 17 años, 2 meses
Puntos: 19
Re: Menu a la derecha

aca tenes un ejemplo claro:

El ejemplo utiliza las funciones Api: GetMenu, GetMenuItemID, ModifyMenu y DrawMenuBar.

Las 2 primeras recuperan los HWND necesarios para pasarle a ModifyMenu. Una ves ejecutado ModifyMenu debemos llamar a DrawMenuBar, que haría como un Refresh o repintado del mismo.

Importante, en este ejemplo hay 3 menues, y para indicar que vamos a alinear el último se especifica un 2 y no un 3 en el parámetro de ModifyMenu, es decir es el total -1

Controles

Colocar un Command1 y especificar en la línea de ModifyMenu el Index del último menú



Código fuente en el formulario

Option Explicit

'Delaraciones API
'************************************************* ***********************
Private Declare Function GetMenu Lib "user32" (ByVal hWnd As Long) As Long
Private Declare Function GetMenuItemID Lib "user32" (ByVal retMenu As Long, _
ByVal nPos As Long) As Long
Private Declare Function ModifyMenu Lib "user32" Alias "ModifyMenuA" (ByVal _
retMenu As Long, ByVal nPosition As Long, _
ByVal wFlags As Long, ByVal wIDNewItem As _
Long, ByVal lpString As Any) As Long
Private Declare Sub DrawMenuBar Lib "user32" (ByVal hWnd As Long)

Private Sub Command1_Click()
Dim retMenu As Long, IDMenu As Long

'recupera el HWND del menu de la aplicación
retMenu = GetMenu(Me.hWnd)

'Handle del menu a alinear
IDMenu = GetMenuItemID(retMenu, 2)

'Se le pasan los 2 parámetros anteriores, el tercer _
parámetro le indica la alineacion. El último el caption
ModifyMenu retMenu, IDMenu, &H4000, IDMenu, "Acerca de.."

'Se redibuja o refresca el menú pasandole al api el HWND de la venta que lo contiene
DrawMenuBar Me.hWnd

End Sub
  #3 (permalink)  
Antiguo 12/03/2007, 03:59
Avatar de DeYoN  
Fecha de Ingreso: febrero-2004
Mensajes: 81
Antigüedad: 20 años, 3 meses
Puntos: 0
Re: Menu a la derecha

MUchas gracias, funciono perfectamente.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 09:04.