Inhabilitar botón para cerra formulario
Hola a todos,
Estoy haciendo un programa en Vb, y quiero inhabilitar los botones que salen en la parte de arriba del formulario de maximizar, minimizar y cerrar.
Los botones de maximizar y minimizar ya los he inhabilitado poniendolos a false, pero no se como hacer con el botón de cerrar (la x).
¿Alguien sabe cómo hacerlo?
Gracias, Kemmotar
Estoy haciendo un programa en Vb, y quiero inhabilitar los botones que salen en la parte de arriba del formulario de maximizar, minimizar y cerrar.
Los botones de maximizar y minimizar ya los he inhabilitado poniendolos a false, pero no se como hacer con el botón de cerrar (la x).
¿Alguien sabe cómo hacerlo?
Gracias, Kemmotar
Si no quieres mostrar ningun boton del formulario, prueba a poner la propiedad ControlBox del Form a False y con eso quitas todos los botones... Minimmizar, Maximixar y Cerrar...
Hasta pronto...
Hasta pronto...
Se puede hacer como dice Observador, el problema es que el formulario te va a quedar sin la barra de título (no recomendable cuando es un formulario on top que necesites mover o arrastrar)
La forma de deshabilitar el botón es la siguiente:
Al principio del código del formulario donde quieras deshabilitar el botón, colocas lo siguiente:
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_BYPOS = &H400&
Public Sub funQClose(ByVal prmhWnd As Long)
Dim varMenuTitulo As Long
varMenuTitulo = GetSystemMenu(prmhWnd, 0)
Call RemoveMenu(varMenuTitulo, 6, MF_BYPOS)
Call RemoveMenu(varMenuTitulo, 5, MF_BYPOS)
End Sub
Luego, en el evento Load del formulario, agregas la siguiente línea
funQClose nombredetuformulario.hWnd
La otra solución sería a través del evento QueryUnload de tu formulario (así deshabilitas la función del botón cerrar, pero el botón igual queda operativo a nivel de click, o sea, puedes clickearlo, pero el botón no hará absolutamente nada). Debes colocar esto en tu código:
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
If UnloadMode = 0 Then
Cancel = 1
End If
End Sub
Saludos!
Bartolom
Chile
La forma de deshabilitar el botón es la siguiente:
Al principio del código del formulario donde quieras deshabilitar el botón, colocas lo siguiente:
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_BYPOS = &H400&
Public Sub funQClose(ByVal prmhWnd As Long)
Dim varMenuTitulo As Long
varMenuTitulo = GetSystemMenu(prmhWnd, 0)
Call RemoveMenu(varMenuTitulo, 6, MF_BYPOS)
Call RemoveMenu(varMenuTitulo, 5, MF_BYPOS)
End Sub
Luego, en el evento Load del formulario, agregas la siguiente línea
funQClose nombredetuformulario.hWnd
La otra solución sería a través del evento QueryUnload de tu formulario (así deshabilitas la función del botón cerrar, pero el botón igual queda operativo a nivel de click, o sea, puedes clickearlo, pero el botón no hará absolutamente nada). Debes colocar esto en tu código:
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
If UnloadMode = 0 Then
Cancel = 1
End If
End Sub
Saludos!
Bartolom
Chile