** NORMAS DEL FORO **
Inicio del foro Inicio del foro > Access y VBA > Access y VBA
  Mensajes nuevos Mensajes nuevos RSS - Hilo Ocultar botón cerrar
  Preguntas frecuentes Preguntas frecuentes  Buscar en el foro   Eventos   Registro Registro  Iniciar sesion Iniciar sesion

Tema cerradoHilo Ocultar botón cerrar

 Responder Responder
Autor
Mensaje
teogf Ver desplegable
Asiduo
Asiduo


Unido: 09/Febrero/2007
Localización: España
Estado: Sin conexión
Puntos: 447
Enlace directo a este mensaje Tema: Hilo Ocultar botón cerrar
    Enviado: 30/Enero/2016 a las 20:23
Respecto a éste hilo, que ya está cerrado: http://www.mvp-access.com/foro/quitar-boton-cerrar_topic81075_post490639.html?KW=OCULTAR+BOTON+CERRAR#490639

Estoy aplicando en la versión 2016 el código planteado en el hilo expuesto, y me oculta también el botón minimizar y maximizar.

¿La idea de ésta función no era que sólamente afectase al boton cerrar? En mi caso quiero mantener el botón maximizar y minimizar.

Por otro lado también deseo ocultar la barra del pie de la ventana madre de Access (donde aparece "vista formulario" y "Bloq Num") en el momento de la ejecución del formulario. Tenéis algun sugerencia.

Saludos.

Teo
Arriba
ximo Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 03/Marzo/2006
Localización: España
Estado: Sin conexión
Puntos: 1925
Enlace directo a este mensaje Enviado: 31/Enero/2016 a las 00:40
Hola,

No se en A2016 como puede ser, pero en las propiedades del formulario tienes Botón cerrar=no, botones minimizar y maximizar=si, tendras que implementar si no lo tienes un botón de cerrar el formulario.


Saludos, ximo
La incansable busqueda de información abre nuestras mentes

Saludos desde Burriana
Arriba
teogf Ver desplegable
Asiduo
Asiduo


Unido: 09/Febrero/2007
Localización: España
Estado: Sin conexión
Puntos: 447
Enlace directo a este mensaje Enviado: 31/Enero/2016 a las 12:13
Hola Ximo,

La sugerencia que me comentas es a nivel de formulario. A lo que me refiero, es la función que actúa sobre la pantalla madre de Access. En ella se eliminan los 3 botones. Sólamente deseo ocultar el botón cerrar y mentener el botón minimizar.

Saludos.

Teo
Arriba
VIMIPAS Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 06/Enero/2006
Localización: ESPAÑA
Estado: Sin conexión
Puntos: 5226
Enlace directo a este mensaje Enviado: 31/Enero/2016 a las 19:26
Hola buenas tardes. Ximo, saludos.

Teogf, aquí te dejo dos links para que los veas:



Creo que es lo que andas buscando. Ya nos cuentas.

Saludos.

P.D.:

Y aquí otro de Happy, por si quieres mantener la pantalla de Acces, pero sin mostrar los botones de Maximizar, Minimizar y Cerrar (o alternarlos, al gusto de cada cual).





Editado por VIMIPAS - 31/Enero/2016 a las 19:33
Gracias
Arriba
ximo Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 03/Marzo/2006
Localización: España
Estado: Sin conexión
Puntos: 1925
Enlace directo a este mensaje Enviado: 31/Enero/2016 a las 20:54
Hola,

No había mirado el pos de referencia tuyo, como veras en el código ya que biene muy bien comentado con dejar solo aquello que te interesa va perfecto o no?

Como veras hay más Call Deletemenu cada uno se aplica a una cosa todo no es copiar y pegar hay que leer un poco.
 



 Call DeleteMenu(hMenu, SC_RESTORE, MF_BYCOMMAND)
         ' deshabilita la opción "Cerrar"



Saludos, ximo


PD: Es un placer Vicente

La incansable busqueda de información abre nuestras mentes

Saludos desde Burriana
Arriba
teogf Ver desplegable
Asiduo
Asiduo


Unido: 09/Febrero/2007
Localización: España
Estado: Sin conexión
Puntos: 447
Enlace directo a este mensaje Enviado: 01/Febrero/2016 a las 15:17
Hola Ximo,

Pero entiendo que la solución a la que haces referencia es para Access 2003. De echo la he probado en la versión más actual 2016 y no me funciona.

Saludos.

Teo
Arriba
ximo Ver desplegable
Colaborador
Colaborador
Avatar

Unido: 03/Marzo/2006
Localización: España
Estado: Sin conexión
Puntos: 1925
Enlace directo a este mensaje Enviado: 01/Febrero/2016 a las 15:30
Hola,
No se para que access es, tú lo sabras, eres quien ha posteado el código, solo te indico que eso es lo único que debe quedar para lo que tú quieres, pero si además quieres que desaparezca casi la totalidad del marco menos los botones que tú desees lo veo dificil.
Siempre he pensado dentro de mis limites, que un programador debe darle al usuario todo aquello que necesite para interactuar con la aplicación, no dejando a su libre albedrío toquetear nada, así que para mi gusto, access trasparente, formularios bien construidos con todo lo necesario para trabajar, que para eso es la aplicación para el trabajo, no para enrredar.



Saludos, ximo
La incansable busqueda de información abre nuestras mentes

Saludos desde Burriana
Arriba
teogf Ver desplegable
Asiduo
Asiduo


Unido: 09/Febrero/2007
Localización: España
Estado: Sin conexión
Puntos: 447
Enlace directo a este mensaje Enviado: 15/Junio/2016 a las 13:38
Hola a todos,

Posteo el código que al final me ha funcionado perfectamente en Access 2016.


Option Compare Database

Option Explicit

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

Private Declare PtrSafe Function EnableMenuItem Lib "user32" (ByVal hMenu As _
    Long, ByVal wIDEnableItem As Long, ByVal wEnable As Long) As Long

Const MF_GRAYED = &H1&
Const MF_BYCOMMAND = &H0&
Const SC_CLOSE = &HF060&

Public Function SetEnabledState(blnState As Boolean)
    Call CloseButtonState(blnState)
    Call ExitMenuState(blnState)
End Function

'Disable the Menu Option
Sub ExitMenuState(blnExitState As Boolean)
    Application.CommandBars("File").Controls("Exit").Enabled = blnExitState
End Sub

'Disable the Close Button Option
Sub CloseButtonState(boolClose As Boolean)
    Dim hWnd As Long
    Dim wFlags As Long
    Dim hMenu As Long
    Dim result As Long
      
    hWnd = Application.hWndAccessApp
    hMenu = GetSystemMenu(hWnd, 0)
    If Not boolClose Then
        wFlags = MF_BYCOMMAND Or MF_GRAYED
    Else
        wFlags = MF_BYCOMMAND And Not MF_GRAYED
    End If
   
    result = EnableMenuItem(hMenu, SC_CLOSE, wFlags)
End Sub

Sólamente hay que llamar el código en la opción Form_load() del formulario de inicio con:

    CloseButtonState (True)
    SetEnabledState (False)

Se puede cerrar el hilo.

Saludos.

Teo

Arriba
E. Feijoo Ver desplegable
Moderador
Moderador


Unido: 16/Abril/2004
Localización: España
Estado: Sin conexión
Puntos: 19948
Enlace directo a este mensaje Enviado: 15/Junio/2016 a las 17:55
No conozco el A2016, pero ... ¿es una unica version de 64 bit? o es la version que utilizas par tu entorno ....
Arriba
teogf Ver desplegable
Asiduo
Asiduo


Unido: 09/Febrero/2007
Localización: España
Estado: Sin conexión
Puntos: 447
Enlace directo a este mensaje Enviado: 15/Junio/2016 a las 19:30

Hola E.Feijoo,

Es la versión que utilizo tanto en una maquina con Windows 7 32 bits como en otra máquina con Windows 10 a 64 bits. En ambos casos actúa de la misma forma. Lo único que presenta una incompatibilidad de ejecución cuando se compila a .accde desde w10 64 bits para ejecutarlo en w7 32 bits. Por ello siempre tengo que compilar en una sola dirección w7 a w10. 

Aquí un enlace sobre un comentario de Microsoft que no recomienda la instalación de versiones 64 bits de Office salvo que sea en servidores.

https://support.office.com/es-es/article/Elegir-la-versi%C3%B3n-de-32-%C3%B3-64-bits-de-Microsoft-Office-2dee7807-8f95-4d0c-b5fe-6c6f49b8d261?CorrelationId=e999a224-46a9-40af-846b-4ec752d22e04&ui=es-ES&rs=es-ES&ad=ES

Saludos.

Teo

Arriba
teogf Ver desplegable
Asiduo
Asiduo


Unido: 09/Febrero/2007
Localización: España
Estado: Sin conexión
Puntos: 447
Enlace directo a este mensaje Enviado: 12/Febrero/2017 a las 20:18
Os posteo la solucion para inhabilitar el botón cerrar, sin modificar las propiedades de los restantes botones:

Option Compare Database

Option Explicit

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

Private Declare PtrSafe Function EnableMenuItem Lib "user32" (ByVal hMenu As _
    Long, ByVal wIDEnableItem As Long, ByVal wEnable As Long) As Long

Const MF_GRAYED = &H1&
Const MF_BYCOMMAND = &H0&
Const SC_CLOSE = &HF060&

Public Function SetEnabledState(blnState As Boolean)
    Call CloseButtonState(blnState)
    Call ExitMenuState(blnState)
End Function

'Disable the Menu Option
Sub ExitMenuState(blnExitState As Boolean)
    Application.CommandBars("File").Controls("Exit").Enabled = blnExitState
End Sub

'Disable the Close Button Option
Sub CloseButtonState(boolClose As Boolean)
    Dim hWnd As Long
    Dim wFlags As Long
    Dim hMenu As Long
    Dim result As Long
      
    hWnd = Application.hWndAccessApp
    hMenu = GetSystemMenu(hWnd, 0)
    If Not boolClose Then
        wFlags = MF_BYCOMMAND Or MF_GRAYED
    Else
        wFlags = MF_BYCOMMAND And Not MF_GRAYED
    End If
   
    result = EnableMenuItem(hMenu, SC_CLOSE, wFlags)
End Sub

Ahora solo hago referencia a ello en el formulario de inicio con:

    CloseButtonState (True)
    SetEnabledState (False)


Saludos.

Se puede cerrar el hilo.



Editado por teogf - 12/Febrero/2017 a las 20:19
Arriba
 Responder Responder
  Compartir tema   

Ir al foro Permisos de foro Ver desplegable