ms-access - sirve - tipos de formularios en access
Controlar el tamaño de los formularios en Access (4)
Puedes usar MoveSize:
DoCmd.MoveSize 100,100
Más información: http://msdn.microsoft.com/en-us/library/aa141514(office.10).aspx
Así que tengo una aplicación de acceso, y me gustaría que algunos formularios se maximicen cuando se abren, y que otros sean de tamaño mediano cuando se abren. Sin embargo, si intento algo como esto:
Private Sub Form_Activate()
DoCmd.Maximize
End Sub
o
Private Sub Form_Activate()
DoCmd.Restore
End Sub
tiene el efecto de maximizar o restaurar cada ventana abierta, que no es lo que estoy buscando.
¿Hay alguna forma de evitar esto?
Estoy usando Access 2003.
Hay un par de opciones aquí: http://www.jamiessoftware.tk/articles/resolution.html
Utilicé ADHResize en el pasado y cumplí mi trabajo.
Access es una aplicación MDI (Multiple Document Interface), y así es como funcionan: todas las ventanas secundarias están maximizadas o ninguna.
Lo que debe hacer es buscar la forma de descubrir las dimensiones de la ventana de la aplicación de Access y luego establecer programáticamente las propiedades .InsideWidth y .InsideHeight. El objeto Application
tiene una aplicación hwndAccessApp
que probablemente se puede usar con algunas llamadas API de Windows para averiguar su ancho y alto.
apéndice
Gracias a Philippe Grondier por encontrar una muestra de código relevante, la idea general de la muestra del código es:
- declarar los siguientes elementos de la API de Win32:
-
struct Rect
(Type Rect…
en VBA) -
const SW_SHOWNORMAL = 1
(para ShowWindow) -
GetParent
(dado un hwnd, obtenga el hwnd de su padre) -
GetClientRect
(recuperar posición y tamaño desde un hwnd) -
IsZoomed
(booleano; verdadero si la ventana está maximizada) -
ShowWindow
(cambia el estado de una ventana) -
MoveWindow
(para cambiar la posición y el tamaño de una ventana)
-
- si su formulario está maximizado (
IsZoomed(frm.hWnd) = True
), luego restaurelo (ShowWindow frm.hWnd, SW_SHOWNORMAL
) - obtener el área de clientes MDI desde hWnd de su formulario (
GetClientRect GetParent(frm.hWnd, rect)
) - utilice los datos rect para cambiar la posición y el tamaño de su ventana (
MoveWindow frm.hWnd, 0, 0, rect.x2-rect.x1, rect.y2-rect.y1
)
(Lo anterior es básicamente la explicación de la muestra del código; no copié y pegué el código porque no estaba seguro de si el autor lo permitió).