
Volver |
'********************************************************* ' DeleteMainMenu ' ' Rutina que desactiva las opciones del menú de la ventana ' principal de Access, como el botón cerrar, minimizar, ' etc. '
' Argumentos ' ItemMenu: Opcional. Una cualquiera de las constantes ' declaradas más abajo, y que comienzan con el prefijo ' "SC_". Si no se pasa ningún argumento, la rutina ' desactivará todas las opciones ' Private Declare Function GetSystemMenu _
Lib "user32" _
(ByVal hWnd As Long, _
ByVal bRevert As Long) As Long
Private Declare Function DrawMenuBar _
Lib "user32" _
(ByVal hWnd As Long) As Long
Private Declare Function DeleteMenu _
Lib "user32" _
(ByVal hMenu As Long, _
ByVal nPosition As Long, _
ByVal wFlags As Long) As Long
Public Const MF_BYCOMMAND = &H0&
Public Const MF_BYPOSITION = &H400&
' Constante para la opción Cerrar Public Const SC_CLOSE = &HF060
' Constante para la opción Maximizar Public Const SC_MAXIMIZE = &HF030
' Constante para la opción Minimizar Public Const SC_MINIMIZE = &HF020
' Constante para la opción Mover Public Const SC_MOVE = &HF010
' Constante para la opción Restaurar Public Const SC_RESTORE = &HF120
' Constante para la opción Tamaño Public Const SC_SIZE = &HF000
Public Sub DeleteMainMenu(Optional ItemMenu)
Dim hMenu As Long
' obtenemos el identificador del menú de la
' ventana principal de Access
hMenu = GetSystemMenu(Access.hWndAccessApp, False)
If hMenu Then
' si no se le pasan argumentos a esta rutina
' entonces desactivara todas las opciones del menú
If IsMissing(ItemMenu) Then
' deshabilita la opción "Maximizar"
Call DeleteMenu(hMenu, SC_MAXIMIZE, MF_BYCOMMAND)
' deshabilita la opción "Minimizar"
Call DeleteMenu(hMenu, SC_MINIMIZE, MF_BYCOMMAND)
' deshabilita la opción "Tamaño"
Call DeleteMenu(hMenu, SC_SIZE, MF_BYCOMMAND)
' deshabilita la opción "Mover"
Call DeleteMenu(hMenu, SC_MOVE, MF_BYCOMMAND)
' deshabilita la opción "Restaurar"
Call DeleteMenu(hMenu, SC_RESTORE, MF_BYCOMMAND)
' deshabilita la opción "Cerrar"
Call DeleteMenu(hMenu, SC_CLOSE, MF_BYCOMMAND)
' por último quitamos la barra separadora
Call DeleteMenu(hMenu, 0, MF_BYPOSITION)
Else
' deshabilita la opción indicada en ItemMenu
Call DeleteMenu(hMenu, ItemMenu, MF_BYCOMMAND)
End If
' Redibujamos botones y menú
Call DrawMenuBar(Access.hWndAccessApp)
End If
End Sub
' ' La siguiente rutina restaura el menú de la ventana ' principal de Access a su estado original
' Public Sub RestoreMainMenu()
' Habilita el menú a su estado original
Call GetSystemMenu(Access.hWndAccessApp, True)
Call DrawMenuBar(Access.hWndAccessApp)
End Sub ' ' Si queremos desactivar del todo la opción "Cerrar" del ' programa, deberemos añadir en algún punto de nuestro ' código la siguiente instrucción, que deshabilitará la ' opción "Salir" del menú "Archivo" ' CommandBars("Menu Bar"). _ Controls("Archivo"). _ Controls("Salir"). _ Enabled = False ' ' y eso es todo, amigos ;-) '********************************************************* |