VBasicFacil
Principal - Enlaces - Código - Controles - API
Declaración
Declare Function GetSystemMenu Lib "user32" Alias "GetSystemMenu" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Plataformas
Descripción
Recupera el manipulador del menu del sistema de una ventana (menú de la izquierda de la barra de título de una ventana).
Parámetros
hWnd Manipulador de la ventana a cuyo menu queremos acceder.
bRevert Acción que se va a hacer en el menú. Si el parametro es FALSE, la función devuelve el manipulador del menú por defecto de la ventana. Si el parametro es TRUE, la función restaura el menú por defecto de la venta. El menu anterior es destruido.
Valor devuelto
Si bRevert es FALSE y la función termina correctamente devuelve el manipulador del menú, si no termina correctamente devuelve 0. Si bRevert es TRUE devuelve 0.
Particularidades en VBasic
Aunque se pueden cambiar las entradas del menú del sistema si se desea, no se pueden añadir nuevas entradas que reciban eventos Click salvo que se utilice un control de subclasificación, como el dwsbc32d.ocx. Esta orden tambien se puede usar para eliminar entradas del menú del sistema que no se desee que estén disponibles para el usuario.
Ejemplo
| Este ejemplo permite eliminar un item del menú de la barra de título de una ventana que localizamos por su título. |
|
Formulario (Crear un formulario con un CommandButton) Option Explicit
Private Sub Form_Load()
Dim hWndWindow As Long 'Manejador de la ventana
Dim hWndMenu As Long 'Manejador del menu
Dim Cont As Long 'Contador de items del menu
'Capturamos el manejador de la ventana cuyo título es "MS-DOS"
hWndWindow = FindWindow(vbNullString, "MS-DOS")
'Si existe la ventana MS-DOS capturamos el manejador del menú
If hWnd <> 0 Then
hWndMenu = GetSystemMenu(hWndWindow, False)
End If
If hWndMenu <> 0 Then
'Si existe el menu borramos el item 6 del mismo
'En Windows 2000 el item 6 es cerrar
RemoveMenu hWndMenu, 6, MF_BYPOSITION Or MF_REMOVE
End If
End Sub
Private Sub Command1_Click()
Unload Me
End Sub
|
|
Modulo
Option Explicit
Public Declare Function GetSystemMenu _
Lib "user32" _
(ByVal hWnd As Long, _
ByVal bRevert As Long) As Long
Public Declare Function RemoveMenu _
Lib "user32" _
(ByVal hMenu As Long, _
ByVal nPosition As Long, _
ByVal wFlags As Long) As Long
Public Declare Function FindWindow _
Lib "user32" _
Alias "FindWindowA" _
(ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
Public Const MF_BYPOSITION = &H400&
Public Const MF_REMOVE = &H1000&
Public Const MF_BYCOMMAND = &H0
Public Const MF_GRAYED = &H1
|
| Descargar código : RemoveMenu.zip |
Aplicaciones:
Ver también: FindWindowEx, ShowWindow, ShowWindow
Categoría: Window
Ultima actualización : 16 de diciembre de 2001 Copyright © 2001 Silared, s.l. correo-e : vbasicfacil@silared.com Site : www.vbasicfacil.com