• Miércoles 20 de Noviembre de 2024, 00:28

Autor Tema:  Activar Boton X (cerrar) El Formulario  (Leído 6073 veces)

serbc25

  • Nuevo Miembro
  • *
  • Mensajes: 17
    • Ver Perfil
Activar Boton X (cerrar) El Formulario
« en: Lunes 28 de Noviembre de 2005, 21:32 »
0
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



 :unsure:

Maxi.Net

  • Nuevo Miembro
  • *
  • Mensajes: 16
    • Ver Perfil
Re: Activar Boton X (cerrar) El Formulario
« Respuesta #1 en: Miércoles 14 de Diciembre de 2005, 23:49 »
0
Hola yo tengo una forma mas sencilla de esconder el boton cerrar (x) y de mostrarlo

Esconder:

1ero Debes ocultar los tres botones (Me.ControlBox= False), luego muestras el minimizar y maximizar.


Me.ControlBox= False    ' boton (x), minimizar y maximizar
Me.MaximizeBox= True  ' boton maximizar
Me.MinimizeBox= True   ' boton minimizar


Mostrar:

Me.ControlBox= True 'Muestra minimizar, maximizar y cerrar (x)

espero te sirva
Adios
<span style=\'font-family:Geneva\'>M@xixD</span>: No existen preguntas tontas, sólo sus respuestas

senzao18

  • Miembro HIPER activo
  • ****
  • Mensajes: 553
    • Ver Perfil
Re: Activar Boton X (cerrar) El Formulario
« Respuesta #2 en: Sábado 31 de Diciembre de 2005, 17:35 »
0
Maxi.Net donde probaste tu forma de ocultar el boton por que ami no me hace que lo que tu dices en el POST...


Si lo hace, podrias decirme en que version :D de VS.Net lo haces???
---------------------------------------
Erick Aragon Zepeda
Dessarrollo de Aplicaciones .NET
http]
Blog de Articulos
Mi Blog
NoSolocodigo -->

jodijo5

  • Miembro HIPER activo
  • ****
  • Mensajes: 518
  • Nacionalidad: pe
    • Ver Perfil
    • http://www.bluetecnologia.com
Re: Activar Boton X (cerrar) El Formulario
« Respuesta #3 en: Lunes 2 de Enero de 2006, 17:18 »
0
copachay, si lo que tu deseas es hacer que tu formulario no se cierre nunca, creo que no es necesario que actives o  descatives ese boton, yo lo hago así

Código: Text
  1.  
  2. dim algo as boolean=true
  3. private sub form_closing(sender as object, e as ....)
  4.     e.cancel=algo
  5. end sub
  6. private sub button1_click(sender as object, e as event....)
  7. algo=not algo
  8. end sub
  9.  
  10.  
=============================
Daniel Pomalaza Mendoza
visita el Dinosaurio Azul :-D
http://bluetecnologia.com

Maxi.Net

  • Nuevo Miembro
  • *
  • Mensajes: 16
    • Ver Perfil
Re: Activar Boton X (cerrar) El Formulario
« Respuesta #4 en: Jueves 12 de Enero de 2006, 17:02 »
0
hola lo hago en vb.net 2002 y creeme que resulta
SOLO ES UN EFECTO VISUAL y podrias partir por ponerlo en el evento clic de un boton
adios
<span style=\'font-family:Geneva\'>M@xixD</span>: No existen preguntas tontas, sólo sus respuestas

senzao18

  • Miembro HIPER activo
  • ****
  • Mensajes: 553
    • Ver Perfil
Re: Activar Boton X (cerrar) El Formulario
« Respuesta #5 en: Viernes 13 de Enero de 2006, 17:09 »
0
Bueno tengo la version 2003 de VS .Net y ahi no sale... jaja...
---------------------------------------
Erick Aragon Zepeda
Dessarrollo de Aplicaciones .NET
http]
Blog de Articulos
Mi Blog
NoSolocodigo -->

Maxi.Net

  • Nuevo Miembro
  • *
  • Mensajes: 16
    • Ver Perfil
Re: Activar Boton X (cerrar) El Formulario
« Respuesta #6 en: Jueves 23 de Marzo de 2006, 23:05 »
0
HOLA despues de tanta discución q tal un enlace externo.

http://www.elguille.info/colabora/puntoNET...desactivado.htm

Espero te sirva
<span style=\'font-family:Geneva\'>M@xixD</span>: No existen preguntas tontas, sólo sus respuestas

SJK

  • Nuevo Miembro
  • *
  • Mensajes: 14
    • Ver Perfil
Re: Activar Boton X (cerrar) El Formulario
« Respuesta #7 en: Domingo 26 de Marzo de 2006, 18:30 »
0
No veo por qué complicarse tanto, si lo que quieres es que la aplicacion no se cierre:

Código: Text
  1.     Private Sub Form1_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
  2.         e.Cancel = True
  3.     End Sub
  4.  

En caso de que quieras complicarte un poquito más y sólamente no dejar cerrarlo cuando tú quieras y no siempre:

Código: Text
  1.     Private Sub frmAA_Closing(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
  2.         If condicion = True Then
  3.             e.Cancel = True
  4.         End If
  5.     End Sub
  6.  
Se supone que antes declaraste esto:
Dim condicion As Boolean = False
 y tbn se supone k en otro momento diste el valor True a condicion...

senzao18

  • Miembro HIPER activo
  • ****
  • Mensajes: 553
    • Ver Perfil
Re: Activar Boton X (cerrar) El Formulario
« Respuesta #8 en: Lunes 27 de Marzo de 2006, 18:18 »
0
Bueno el chiste de la discusion es deshabilitar el boton , y no cancelar el evento  :P

Pero tu comentario es valido y muy logico  :lol: ... :D
---------------------------------------
Erick Aragon Zepeda
Dessarrollo de Aplicaciones .NET
http]
Blog de Articulos
Mi Blog
NoSolocodigo -->