Fare clic destro sul desktop e selezionare "Proprietà ". Vai alla scheda " Impostazioni " e modificare la risoluzione dello schermo a " 800 x 600 ". Si utilizzerà questo piccolo risoluzione per creare il telaio indipendente dalla risoluzione .
2
Aprire Visual Studio e iniziare un nuovo progetto . Il form " Form1 " viene creato automaticamente
3
Vai al modulo del form e incollare il codice per rendere la forma indipendente dalla risoluzione : .
Option Explicit
Dim MyForm Come FRMSIZE
Dim designx As Integer Dim
designy As Integer
private Sub Form_Load ( ) per
Dim ScaleFactorX As Single , ScaleFactorY As Single ' fattori di scala
' Dimensione del modulo in pixel a disegno risoluzione
designx = 800
designy = 600
RePosForm = Flag True ' per Modulo di posizionamento
DoResize = False ' Flag per Resize evento
' impostare la schermata di valori
Xtwips = Screen.TwipsPerPixelX
Ytwips = Screen.TwipsPerPixelY
Ypixels = screen.height /Ytwips ' Y pixel di risoluzione
Xpixels = screen.width /Xtwips ' X Pixel Risoluzione
'definire i fattori di scala
ScaleFactorX = ( Xpixels /designx ) per
ScaleFactorY = ( Ypixels /designy ) per
ScaleMode decommentare = 1 ' twips
' Exit Sub ' per vedere come Form1 appare senza ridimensionare
Resize_For_Resolution ScaleFactorX , ScaleFactorY , Me
Label1.Caption = " risoluzione corrente è" & Str $ ( Xpixels ) + _
" da " + Str $ ( Ypixels )
MyForm.Height = Me.Height 'Ricorda l'attuale dimensione
MyForm.Width = Me.Width
End Sub
Form_Resize private Sub ( )
Dim ScaleFactorX As Single , ScaleFactorY As Single
Se Non DoResize Then ' Per evitare loop infinito
DoResize = True
Exit
Sub
End If
RePosForm = False
ScaleFactorX = Me.Width /MyForm.Width ' Quanto cambiamento?
ScaleFactorY = Me.Height /MyForm.Height
Resize_For_Resolution ScaleFactorX , ScaleFactorY , Me
MyForm.Height = Me.Height 'Ricorda l'attuale dimensione
MyForm.Width = Me.Width
End Sub
private Sub Command1_Click ( ) Dim
ScaleFactorX As Single , ScaleFactorY As Single
designx = Xpixels
designy = Ypixels
RePosForm = True
DoResize = False
' impostare la schermata di valori
Xtwips = Screen.TwipsPerPixelX
Ytwips = Screen.TwipsPerPixelY
Ypixels = screen.height /Ytwips ' Y pixel di risoluzione
Xpixels = screen.width /Xtwips ' X Pixel Risoluzione
'definire i fattori di scala
ScaleFactorX = ( Xpixels /designx )
ScaleFactorY = ( Ypixels /designy ) per
Resize_For_Resolution ScaleFactorX , ScaleFactorY , Me
Label1.Caption = " risoluzione corrente è" & Str $ ( Xpixels ) + _
"con" + Str $ ( Ypixels ) per
MyForm.Height = Me.Height 'Ricorda l'attuale dimensione
MyForm.Width = Me.Width
End Sub
4
Aggiungi tutti i controlli che si desidera testare la forma . È possibile aggiungere etichette , pulsanti di comando ei riquadri di immagine . Questa operazione è necessaria per verificare se tutti gli elementi del form regolare correttamente la loro dimensione .
5
Vai al menu "Progetto" e selezionare " Aggiungi modulo .... " Fare clic su " Aggiungi" per aggiungere il nuovo modulo al progetto
6
Vai al nuovo modulo e incolla il codice per regolare automaticamente le proporzioni del modulo in relazione alla risoluzione dello schermo : .
Xtwips pubblico come Integer , Ytwips As Integer
Xpixels pubblico come Integer , Ypixels As Integer
Tipo FRMSIZE
Altezza As Long
Larghezza As Long
End Type
RePosForm pubblico come booleano
DoResize pubblico come booleano
Resize_For_Resolution Sub ( ByVal SFX As Single , _ ByVal
SFY As Single , MyForm As Form ) per
Dim I As Integer Dim
SFFont As Single
SFFont = ( SFX + SFY ) /2 ' scala
media
' Dimensione i controlli per la nuova risoluzione
On Error Resume Next ' per la sola lettura o inesistenti proprietà
MyForm
For i = 0 a contare. - 1
Se TypeOf . Controls ( I) è ComboBox Then ' non può cambiare Altezza
. Controls ( I) . sinistra = . Controlli ( I) . sinistra * SFX
. Controlli ( I) . top = . Controlli (I). Top * SFY
. Controlli ( I) . Larghezza = . Controlli ( I) . Larghezza * SFX
Else
Controlli
. (I). Move. Controlli (I). rimanenti * SFX , _
. Controlli (I). Top * Sfy , _
. Controlli (I). Larghezza * SFX , _
. Controlli ( I) . altezza * SFY
End If
' ridimensionare e riposizionare prima di modificare il FontSize
. Controlli (I). fontsize = . Controlli ( I) . FontSize * SFFont
Poi ho
RePosForm Poi
'Adesso dimensioni del modulo
. Sposta . sinistra * SFX , . Top * SFY , . Larghezza * SFX , . Altezza * SFY
End If End With
End Sub
7
Verifica il tuo nuovo modulo eseguendo sotto diverse risoluzioni dello schermo . Dovrebbe occupare la stessa area del desktop e di mantenere la propria posizione .
Programmazione © www.354353.com