Creación de un marco independiente de la resolución en VB.NET puede ser útil en ciertas situaciones.
CREAR RESOLUCIÓN
Visual Basic. NET o VB.NET, es un lenguaje de programación de computadoras implementado en. NET Framework. Usted puede utilizar VB.NET para crear formas complejas. Sin embargo, una forma creada por el estándar VGA de resolución (640 x 480) tiene sólo una parte de la pantalla con una resolución más alta. Aunque esto es normal, es posible que desee la forma de tener un tamaño y una posición proporcional a la resolución. Estas formas se llaman marcos independientes de la resolución, y son relativamente fáciles de crear.
Lo que necesita
Visual Basic, cualquier versión
Haga clic en cualquier lugar en el escritorio y seleccione "Propiedades". Vaya a la pestaña "Configuración" y cambiar la pantalla de resolución de "800 x 600". Utilizará esta resolución pequeña para crear el marco independiente de la resolución.
Abra Visual Studio y comenzar un proyecto nuevo. La forma "Form1" se crea automáticamente.
Pase al módulo del formulario y pegar el código para hacer la forma independiente de la resolución:
Option Explicit
MyForm As FRMSIZE
DesignX Dim As Integer
Dim Designy As Integer
Private Sub Form_Load ()
Dim ScaleFactorX As Single, ScaleFactorY Como factores individuales 'Escala
"Tamaño del formulario de píxeles con una resolución de diseño
DesignX = 800
Designy = 600
RePosForm = True 'Flag para la Forma posicionamiento
DoResize Flag = False 'para el evento Resize
'Establecer los valores de la pantalla
Xtwips = Screen.TwipsPerPixelX
Ytwips = Screen.TwipsPerPixelY
Ypixels = Screen.Height / Ytwips 'Y Resolución del pixel
Xpixels = screen.width / Xtwips 'X Resolución del pixel
"Determinar los factores de escala
ScaleFactorX = (Xpixels / DesignX)
ScaleFactorY = (Ypixels / Designy)
ScaleMode = 1 'twips
'Exit Sub' descomentar para ver cómo se ve Form1 sin cambiar el tamaño
Resize_For_Resolution ScaleFactorX, ScaleFactorY, Me
Label1.Caption = "Resolución actual es" els) + _
"Por" + Str $ (Ypixels)
MyForm.Height = Me.Height 'Acuérdate del tamaño actual
MyForm.Width = Me.Width
End Sub
Form_Resize Sub Private ()
ScaleFactorX Dim As Single, ScaleFactorY As Single
Si no doResize Entonces 'Para evitar bucle infinito
DoResize = True
Exit Sub
End If
RePosForm = False
ScaleFactorX = Me.Width / MyForm.Width '¿Cuánto cambio?
ScaleFactorY = Me.Height / MyForm.Height
Resize_For_Resolution ScaleFactorX, ScaleFactorY, Me
MyForm.Height = Me.Height 'Acuérdate del tamaño actual
MyForm.Width = Me.Width
End Sub
Private Sub Command1_Click ()
ScaleFactorX Dim As Single, ScaleFactorY As Single
DesignX = Xpixels
Designy = Ypixels
RePosForm = True
DoResize = False
'Establecer los valores de la pantalla
Xtwips = Screen.TwipsPerPixelX
Ytwips = Screen.TwipsPerPixelY
Ypixels = Screen.Height / Ytwips 'Y Resolución del pixel
Xpixels = screen.width / Xtwips 'X Resolución del pixel
"Determinar los factores de escala
ScaleFactorX = (Xpixels / DesignX)
ScaleFactorY = (Ypixels / Designy)
Resize_For_Resolution ScaleFactorX, ScaleFactorY, Me
Label1.Caption = "Resolución actual es" els) + _
"Por" + Str $ (Ypixels)
MyForm.Height = Me.Height 'Acuérdate del tamaño actual
MyForm.Width = Me.Width
End Sub
Agregue todos los controles que desea probar en el formulario. Puede agregar etiquetas, botones de comandos y cuadros de imagen. Debe hacer esto para probar si todos los elementos de su formulario ajustan su tamaño correctamente.
Vaya al menú "Proyecto" y seleccionar "Añadir módulo ...." Haga clic en "Add" para añadir el nuevo módulo al proyecto.
Vaya al nuevo módulo y pega el código para ajustar automáticamente las proporciones de la forma en relación con la resolución de la pantalla:
Xtwips públicas como número entero, Ytwips As Integer
Xpixels públicas como número entero, Ypixels As Integer
Escriba FRMSIZE
Altura As Long
Ancho As Long
Tipo End
RePosForm Pública As Boolean
DoResize Pública As Boolean
Resize_For_Resolution Sub (ByVal SFX As Single, _
ByVal SFY As Single, MyForm como formulario)
Dim I As Integer
SFFont Dim As Single
SFFont = (SFX + SFY) / 2 "escala media
'El tamaño de los controles para la nueva resolución
On Error Resume Next 'para las propiedades de sólo lectura o inexistentes
Con MyForm
Para i = 0 To conde -. 1
Si typeof. Controles (I) Es ComboBox Entonces "no se puede cambiar la altura de
. Controles (I). Izquierda =. Controles (I). Izquierda * SFX
. Controles (I). = Top. Controles (I). Arriba * SFY
. Controles (I). Ancho =. Controles (I). Ancho * SFX
Más
. Controles (I). Mover. Controles (I). Izquierda * SFX, _
. Controles (I). Arriba * SFY, _
. Controles (I). Ancho * SFX, _
. Controles (I). Altura * SFY
End If
"Cambiar el tamaño y la posición antes de cambiar el Tamaño de Letra
. Controles (I). FontSize =. Controles (I). FontSize * SFFont
Siguiente I
Si RePosForm Entonces
'Ahora el tamaño del formulario
. Move. Left * SFX. Arriba * SFY,. Ancho * SFX. Altura * SFY
End If
Extremo con
End Sub
Pon a prueba tu nueva forma de ejecutarlo en diferentes resoluciones de pantalla. Se debe tomar la misma área de escritorio y mantener su posición.
Consejos y advertencias
Usar fuentes TrueType en su nuevo formulario para la escalabilidad.
Diseñe su Marco independiente de la resolución de la resolución de pantalla más baja.
Hacer que el formulario controla más grande de lo habitual porque las fuentes de escala pueden llevar a cambios menores.
No hay comentarios:
Publicar un comentario