Foros del Web

Foros del Web (http://www.forosdelweb.com/)
-   Visual Basic clásico (http://www.forosdelweb.com/f69/)
-   -   Menu a la derecha (http://www.forosdelweb.com/f69/menu-derecha-471418/)

DeYoN 09/03/2007 02:26

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?

seba123neo 10/03/2007 22:37

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

DeYoN 12/03/2007 03:59

Re: Menu a la derecha
 
MUchas gracias, funciono perfectamente.


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

Desarrollado por vBulletin® Versión 3.8.7
Derechos de Autor ©2000 - 2026, Jelsoft Enterprises Ltd.