Hola a todos:
Me han pasado esta funcion para desactivar el boton X del formulario:
'Declaración de constantes necesarias (valores en hexadecimal)
Private Const MF_BYPOSITION As Integer = &H400
Private Const MF_REMOVE As Integer = &H1000
Private Const MF_DISABLED As Integer = &H2
'Variable para saber si ya está desactivado el botón X
'Private pulsado As Boolean = True
'Importación de procedimientos externos almacenados
'en la librería de Windows USER32.DLL
'Obtener el menú de sistema
Private Declare Function GetSystemMenu Lib "User32" _
(ByVal hWnd As Integer, _
ByVal bRevert As Boolean) As IntPtr
'Obtener el número de elementos del menú de sistema
Private Declare Function GetMenuItemCount Lib "User32" _
(ByVal hMenu As Integer) As IntPtr
'Quitar elementos del menú de sistema
Private Declare Function RemoveMenu Lib "User32" _
(ByVal hMenu As Integer, _
ByVal nPosition As Integer, _
ByVal wFlags As Long) As IntPtr
'Redibujar la barra de título de la ventana
Private Declare Function DrawMenuBar Lib "User32" _
(ByVal hWnd As Integer) As IntPtr
Despues agrega esta rutina:
Private Sub DisableCloseButton(ByVal hWnd As IntPtr)
Try 'captura de excepciones
Dim menuItemCount As IntPtr
Dim hMenu As IntPtr
'Obtener el manejador del menú de sistema del formulario
hMenu = GetSystemMenu(hWnd.ToInt32(), False)
'Obtener la cuenta de los ítems del menú de sistema.
'Es el menú que aparece al pulsar sobre el icono a la izquierda
'de la Barra de título de la ventana, consta de los ítems: Restaurar, Mover,
'Tamaño,Minimizar, Maximizar, Separador, Cerrar.
menuItemCount = GetMenuItemCount(hMenu.ToInt32())
'Quitar el ítem Close (Cerrar), que es el último de ese menú
RemoveMenu(hMenu.ToInt32(), menuItemCount.ToInt32() - 1, MF_DISABLED Or
MF_BYPOSITION)
'Quitar el ítem Separador, el penúltimo de ese menú, entre Maximizar y
Cerrar
RemoveMenu(hMenu.ToInt32(), menuItemCount.ToInt32() - 2, MF_DISABLED Or
MF_BYPOSITION)
'Redibujar la barra de menú
DrawMenuBar(hWnd.ToInt32())
'mostrar un mensaje con la excepción producida
Catch pollo As Exception
MessageBox.Show("Se ha producido la excepción: " + vbCrLf + pollo.Message, _
"Error del programa", MessageBoxButtons.OK)
End Try
Y llamala asi:
'desactivo el boton cerrar del formulario
DisableCloseButton(Me.Handle)
Me gustaria como se hace para activarlo