Simular el botón maximizar de un formulario

Un lugar dónde compartir funciones, procedimientos y aplicaciones
Avatar de Usuario
Sveinbjorn
Moderador
Mensajes: 989
Registrado: Sab Oct 24, 2015 10:12 pm

Simular el botón maximizar de un formulario

Mensajepor Sveinbjorn » Mié Dic 02, 2015 9:05 am

El objetivo de este código es simular el maximizado de un formulario para tener el formulario a pantalla completa sin que nos aparezca el botón de restaurar, botón que se muestra si lo maximizamos por medio del botón o con DoCdm.Maximize.

Pasos a seguir:

1º/ Crear un módulo estándar y pegar las siguientes declaraciones y el procedimiento:

'===========================================================================
' Declaraciones del API de Windows
'===========================================================================
Private Declare Function apiGetWindowRect _
Lib "user32" _
Alias "GetWindowRect" _
(ByVal hwnd As Long, _
lpRect As RECT) As Long

Private Declare Function apiMoveWindow _
Lib "user32" _
Alias "MoveWindow" _
(ByVal hwnd As Long, _
ByVal X As Long, _
ByVal Y As Long, _
ByVal nWidth As Long, _
ByVal nHeight As Long, _
ByVal bRepaint As Long) As Long

Private Declare Function apiGetParent _
Lib "user32" _
Alias "GetParent" _
(ByVal hwnd As Long) As Long

Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type


'---------------------------------------------------------------------------------------
' Procedimiento : subMaximiza
' Autor : Sveinbjorn para siliconproject.com.ar/neckkito
' Fecha : 23/11/2013
' Propósito : Amplia o reduce el tamaño del formulario para que se ajuste, sin maximizar,
' a la ventana de access
' Uso : subMaximiza Me.Hwnd
'---------------------------------------------------------------------------------------
'
Public Sub subMaximiza(hwnd As Long)
'Declaramos las variables
Dim rec As RECT
Dim retVal As Long
Dim AltoVentana As Long
Dim AnchoVentana As Long

'Obtenemos las coordenadas de la ventana de access
retVal = apiGetWindowRect(apiGetParent(hwnd), rec)

'Se calcula el ancho y el alto de la ventana. Le resto 5 para que no aparezcan
'las barras de desplazamiento
AnchoVentana = rec.Right - rec.Left - 5
AltoVentana = rec.Bottom - rec.Top - 5

'Una vez hechos los cálculos, redimensionamos la ventana
retVal = apiMoveWindow(hwnd, 0, 0, AnchoVentana, AltoVentana, 1)
End Sub

2º/ En el formulario que se quiera "maximizar", en el evento al cargar, programamos este código:

Private Sub Form_Load()
subMaximiza Me.Hwnd
End Sub

3º/ Modificar estas dos propiedades del formulario, para que quede "chulo":
Estilo de Bordes: Ninguno
Movible: No

Si queréis ver una explicación detallada del código y una BD de ejemplo, podéis hacerlo en el siguiente enlace: http://bit.ly/1RlEeSJ

Un saludo!!
Sveinbjorn El Rojo

Volver a “Almacén Accesiano”

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado