martes, 12 de noviembre de 2013

Cómo crear un marco independiente de resolución en VB.NET

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