Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Min/Max/Close Buttons

Estas en el tema de Min/Max/Close Buttons en el foro de Visual Basic clásico en Foros del Web. Hola amigos Mi ignorancia me hace preguntarles si es posible en un formulario tener habilitados los botones de minimizar y maximizar, pero no el de ...
  #1 (permalink)  
Antiguo 13/06/2005, 08:43
jorevale
Invitado
 
Mensajes: n/a
Puntos:
Pregunta Min/Max/Close Buttons

Hola amigos

Mi ignorancia me hace preguntarles si es posible en un formulario tener habilitados los botones de minimizar y maximizar, pero no el de cerrar.

Me explico. No me interesaría que la aplicación la cerraran por la X del botón cerrar, sino por la opción salir del menú del programa; sin embargo, si me interesaría que el usuario tuviera la posibilidad de minimizarla.

Resulta que si en el formulario pongo la propiedad ControlBox a False me desaparecen los tres, claro, por tanto creo debo dejarla a True, y poner las propiedades MinButton, MaxButton a True y CloseButton a False (o enabled)... pero es que CloseButton no existe!!! jejeje

Alguien tiene idea? Gracias
  #2 (permalink)  
Antiguo 13/06/2005, 09:54
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 4 meses
Puntos: 53
seria algo asi

Código:
Private Sub Bloquear_Cerrar()
Dim hMenu As Long
	'
hMenu = GetSystemMenu(hWnd, 0)
	' Deshabilitar el menú cerrar del formulario
Call ModifyMenu(hMenu, SC_CLOSE, MF_BYCOMMAND Or MF_GRAYED, -10, "Close")
End Sub
nos vemos...
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
  #3 (permalink)  
Antiguo 13/06/2005, 10:13
Avatar de lucasiramos  
Fecha de Ingreso: agosto-2004
Ubicación: Santa Rosa, La Pampa, Argentina
Mensajes: 1.484
Antigüedad: 19 años, 8 meses
Puntos: 13
Hola Geo ¿Hay que agregar alguna librería o algo por el estilo? Me tira que el procedimiento GetSystemMenu no esta definido

Saludos. Lucas
  #4 (permalink)  
Antiguo 13/06/2005, 10:17
 
Fecha de Ingreso: octubre-2004
Ubicación: COLOMBIA
Mensajes: 240
Antigüedad: 19 años, 6 meses
Puntos: 3
GetSystemMenu es un api debes buscar el valor de esa api, con el apiviewer, una forma un poquito mas facil seria asi:
Código:
Private Sub Form_UnLoad(Cancel As Integer)
On Error Resume Next
Cancel = True
End Sub
  #5 (permalink)  
Antiguo 13/06/2005, 11:03
 
Fecha de Ingreso: junio-2005
Mensajes: 7
Antigüedad: 18 años, 10 meses
Puntos: 0
La declaracion API es asi :


Public Declare Function GetSystemMenu _
Lib "user32" _
(ByVal hWnd As Long, _
ByVal bRevert As Long) As Long

( esto ya sabes como llamarlo con la respuesta de GeoAvila )
Esta funcion te puede ayudar :

Private Declare Function RemoveMenu _
Lib "user32" _
(ByVal hMenu As Long, _
ByVal nPosition As Long, _
ByVal wFlags As Long) As Long

y la llamas asi :

RemoveMenu hWndMenu, 6, MF_BYPOSITION Or MF_REMOVE

las constantes son :

Private Const MF_BYPOSITION = &H400&
Private Const MF_REMOVE = &H1000&


Saludos
  #6 (permalink)  
Antiguo 13/06/2005, 11:50
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Cita:
Iniciado por jorevale
Hola amigos

Mi ignorancia me hace preguntarles si es posible en un formulario tener habilitados los botones de minimizar y maximizar, pero no el de cerrar.

Me explico. No me interesaría que la aplicación la cerraran por la X del botón cerrar, sino por la opción salir del menú del programa; sin embargo, si me interesaría que el usuario tuviera la posibilidad de minimizarla.

Resulta que si en el formulario pongo la propiedad ControlBox a False me desaparecen los tres, claro, por tanto creo debo dejarla a True, y poner las propiedades MinButton, MaxButton a True y CloseButton a False (o enabled)... pero es que CloseButton no existe!!! jejeje

Alguien tiene idea? Gracias
Coloca así:
Código:
Private RClose As Boolean
Private Sub Form_Unload(Cancel As Integer)
If Not RClose Then
Cancel = -1
End If
En el Menú Coloca:
Código:
RClose = True
Unload Me
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 13/06/2005, 12:09
jorevale
Invitado
 
Mensajes: n/a
Puntos:
Mil gracias. Saludos.
  #8 (permalink)  
Antiguo 13/06/2005, 13:01
Avatar de GeoAvila
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Antigua Guatemala
Mensajes: 4.032
Antigüedad: 20 años, 4 meses
Puntos: 53
Cierto disculpen pero esque en ese momento no tenia teclado, lo mas que alcance a hacer fue copìar y pegar y algo a la rapida, pido disculpas por eso..

pero bueno.. ya esta solucionado..

nos vemos..
__________________
* Antes de preguntar lee las FAQ, y por favor no hagas preguntas en las FAQ
Sitio http://www.geoavila.com twitter: @GeoAvila
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 08:24.