Visual Basic - Escalar Formularios

Life is soft - evento anual de software empresarial
 
Vista:

Escalar Formularios

Publicado por Jose Luis (20 intervenciones) el 31/08/2000 00:00:00
Esta pregunta la he planteado en el foro de access y siento hacerlo de nuevo aqui, pero tambien uso VB y me vale para los dos sitios.
La pregunta es la siguiente:
Quisiera saber si hay forma de que un Form cambie de tamaño segun la resolucion usada, es decir, si uso una resolucion de 1024x768 que el Form ocupe toda la pantalla sin usar las barras de desplazamiento para ver nada, y cambiando la resolucion a 800x600, el form cambie su tamaño para verlo a pantalla completa sin tener que usar las barras de desplazamiento.
Si alguien tiene algo de codigo o sabe donde obtenerlo, estare muy agradecido.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Escalar Formularios

Publicado por hernux (38 intervenciones) el 31/08/2000 00:00:00
No se si se ejecuta el evento resize al cambiar el tamaño de la pantalla, pero lo que si te puedo decir, es como averiguar la resolucion.

Lo haces con estas dos funciones de la API

Dim hDC As Long, iHorRes As Long, iVerRes As Long

´Obtiene el manejador del DC del Escritorio
hDC = GetDC(0)

´Obtiene las resoluciones correspondientes
iHorRes = GetDeviceCaps(hDC, HORZRES)
iVerRes = GetDeviceCaps(hDC, VERTRES)

SUERT
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Escalar Formularios

Publicado por Christian A. Valeria Celedón (217 intervenciones) el 31/08/2000 00:00:00
Prueba este código en algún formulario:

´Variables globales para el formulario
Private VScr As Integer, HScr As Integer
Private VFactor As Single, HFactor As Single
Private NoCambiar As Boolean

´Al cargar el formulario
Private Sub Form_Load()
HScr = Screen.Width / Screen.TwipsPerPixelX
VScr = Screen.Height / Screen.TwipsPerPixelY
VFactor = VScr / 600
HFactor = HScr / 800
Factor = HScr / 800
NoCambiar = True
Me.Width = Me.Width * HFactor
Me.Height = Me.Height * VFactor
NoCambiar = False
End Sub

Private Sub Form_Resize()
Dim ctl As Control
On Error Resume Next
If NoCambiar Then Exit Sub
For Each ctl In Me
ctl.Top = ctl.Top * VFactor
ctl.Height = ctl.Height * VFactor
ctl.Left = ctl.Left * HFactor
ctl.Width = ctl.Width * HFactor
Next
End Sub

Espero que te sirva de algo
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Gracias

Publicado por Jose Luis (20 intervenciones) el 01/09/2000 00:00:00
Gracias a Hermux y a Christian por su ayuda, cuando remate el tema ya lo comentare.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar