![]() |
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? |
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 |
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.