Desactivar el botón de cerrar Formulario

Como poner en disabled el botón de cerrar formulario (el aspa, el botoncito con una X, que se encuentra en la esquina superior derecha).

En un módulo (.BAS) ponemos:

Option Explicit
Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, _
             ByVal wFlags As Long) As Long
Private Const MF_BYPOSITION = &H400&
Private Const MF_REMOVE = &H1000&

Public Sub RemoveCancelMenuItem(frm As Form)
    Dim hSysMenu As Long
    hSysMenu = GetSystemMenu(frm.hwnd, 0)
    ' Elimina del menú el último elemento (Cerrar)
    Call RemoveMenu(hSysMenu, 6, MF_BYPOSITION Or MF_REMOVE)
    ' Elimina el penultimo elemento (Separador)
    Call RemoveMenu(hSysMenu, 5, MF_BYPOSITION Or MF_REMOVE)
End Sub

Y en el form en cuestión:

Private Sub Form_Load()
    RemoveCancelMenuItem Me
End Sub

Si quieres desactivar las funciones de Maximizar y Minimizar, puedes usar el evento Resize del formulario para intervenir las indicaciones del usuario. Puedes hacer algo parecido a…

Private Sub Form_Resize()
    If Me.WindowState = vbMaximized Or Me.WindowState = vbMinimized Then
        Me.WindowState = vbNormal
    End If
End Sub
Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s