Hola. Me gustaría que me pudieras ayudar en este problema. Estoy haciendo una aplicación en access pero me gustaría saber cómo puedo redimensionar los formularios según la resolución del monitor. Gracias
Esta cuestión que planteas es un dilema para casi todos los desarrolladores. Yo personalmente, utilizo un método que consiste en diseñar todos los formularios de entrada con dimensiones de 20cm de Ancho por 12cm de Largo, para una resolución de 800 x 600. Para formularios de impresión o consulta, utilizo 12x6 y así sucesivamente. A mis usuarios, ya los he acostrumbrado y no tengo que utilizar ninguna técnica adicional. Es especial para monitores de 17". No obstante, a continuación te indico una solución Microsoft sacada de su knowledge base, sobre la forma de fijar los formularios en la pantalla: Cómo impedir que un formulario se mueva en la pantalla La información en este artículo se refiere a: -Microsoft Access, versión 2.0,7.0,97 Resumen Este artículo describe cómo eliminar los elementos Mover y Tamaño del menú de control de un formulario con lo que se impide que un usuario pueda mover o cambiar el tamaño de un formulario. Más información Si quiere evitar que el usuario mueva o cambie el tamaño de un formulario, puede eliminar ambos comandos del menú de control de un formulario utilizando funciones de las API de Windows. La función GetSystemMenu devuelve el handle del menú de control, y éste se puede utilizar luego con la función DeleteMenu para borrarlo. Ejemplo paso a paso A continuación se describen los pasos necesarios para eliminar los elementos de menú Mover y Tamaño del menú de control de un formulario de Microsoft Access. Precaución: cualquier utilización por su parte del código incluido en este artículo se hará a su cuenta y riesgo. Microsoft facilita este código "tal cual" sin garantía de ningún tipo, ya sea explícita o implícita, incluyendo expresamente en tal exención de responsabilidad y, a efectos meramente enunciativos y no limitativos, las garantías legales mercantiles implícitas y/o la adecuación a un propósito o finalidad en particular. 1. Crear un nuevo formulario en Access. 2. En el evento Al Cargar del formulario introducir el siguiente código: En la sección de declaraciones: ' Introducir cada sentencia Declare en una sola línea Declare Function GetSystemMenu Lib "User" (ByVal hWnd%, ByVal bRevert%) As Integer Declare Function DeleteMenu Lib "user" (ByVal hMenu%, ByVal _ iditem%, ByVal wflags%) As Integer Const SC_SIZE = &HF000 Const SC_MOVE = &HF010 Const MF_BYCOMMAND = &H0 NOTA: Para eliminar otros elementos de menú, las constantes se encuentran el en archivo WIN30API.TXT de Visual Basic 3.0. En el evento Al Cargar, introducir el siguiente código: Sub Form_Load () Dim hWnd%, hMenu%, Success% hWnd% = Me.hWnd hMenu% = GetSystemMenu(hWnd%, 0) Success% = DeleteMenu(hMenu%, SC_SIZE, MF_BYCOMMAND) Success% = DeleteMenu(hMenu%, SC_MOVE, MF_BYCOMMAND) End Sub 5. Guardar y cerrar el formulario. 6. Abrir de nuevo el formulario. Comprobará que estos elementos no aparecen en el menú y que por tanto no se puede mover en la pantalla. En Access 95 y Access 97, el código sería el siguiente: Option Compare Database Option Explicit Const SC_SIZE = &HF000 Const SC_MOVE = &HF010 Const MF_BYCOMMAND = &H0 Private Declare Function apiGetSystemMenu Lib "user32" Alias "GetSystemMenu" (ByVal hWnd As Long, ByVal flag As Long) As Long Private Declare Function DeleteMenu Lib "user32" (ByVal _ hMenu%, ByVal iditem%, ByVal wflags%) As Integer Private Sub Form_Load() Dim hWnd%, hMenu%, Success% hWnd% = Me.hWnd hMenu% = apiGetSystemMenu(hWnd%, 0) Success% = DeleteMenu(hMenu%, SC_SIZE, MF_BYCOMMAND) Success% = DeleteMenu(hMenu%, SC_MOVE, MF_BYCOMMAND) End Sub