Foros del Web » Programación para mayores de 30 ;) » .NET »

Activar boton X del formulario

Estas en el tema de Activar boton X del formulario en el foro de .NET en Foros del Web. Hola a todos: Me han pasado una funcion que lo que hace es desactivar el poton X del fromulario, pero lo que me gustaria saber ...
  #1 (permalink)  
Antiguo 27/11/2005, 08:28
 
Fecha de Ingreso: mayo-2004
Mensajes: 29
Antigüedad: 20 años
Puntos: 0
Activar boton X del formulario

Hola a todos:

Me han pasado una funcion que lo que hace es desactivar el poton X del fromulario, pero lo que me gustaria saber como hago para activarlo. La función que me han pasado es esta:

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)
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 10:56.