Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
pravým tlačidlom myši kdekoľvek na ploche a zvoľte " Vlastnosti " . Prejdite na záložku "Nastavenia " a zmeňte rozlíšenie obrazovky " 800 x 600 " . Budete používať tento malý rezolúciu o vytvorení nezávislej na rozlíšenie snímky .
2
Otvorte aplikáciu Visual Studio a spustiť nový projekt . Formulár " Form1 " je vytvorený automaticky
3
Prejsť na module formulára a vložiť kód , aby formuláre nezávislé na rozlíšenie : .
Option Explicit
Dim MyForm ako FRMSIZE
Dim DesignX As Integer
Dim Designy As Integer
Private Sub Form_Load ( )
Dim ScaleFactorX As Single , ScaleFactorY ako jeden " merítkach
' Veľkosť, o formulári v pixeloch , pri rozlíšení dizajne
DesignX = 800
Designy = 600
RePosForm = true ' Flag pre umiestnenie formulár
DoResize = False ' Vlajka pre udalosť resize
"nastaviť hodnoty na obrazovke
Xtwips = Screen.TwipsPerPixelX
Ytwips = Screen.TwipsPerPixelY
Ypixels = Screen.Height /Ytwips " Pixel Rozlíšenie Y
Xpixels = Screen.Width /Xtwips " Pixel Rozlíšenie X
" Určenie merítka faktory
ScaleFactorX = ( Xpixels /DesignX )
ScaleFactorY = ( Ypixels /Designy )
ScaleMode = 1 ' TWIP
" Exit Sub ' odkomentovať vidieť , ako vyzerá Form1 bez zmeny veľkosti
Resize_For_Resolution ScaleFactorX , ScaleFactorY , Me
Label1.Caption = " Aktuálne rozlíšenie je " & Str $ ( Xpixels ) + _
" o " + Str $ ( Ypixels )
MyForm.Height = Me.Height " Pamätaj na aktuálnu veľkosť
MyForm.Width = Me.Width
End Sub
Private Sub Form_Resize ( )
Dim ScaleFactorX ako Single , ScaleFactorY ako samostatné
Ak nie je DoResize potom kliknite na " Aby nedochádzalo k nekonečnej slučke
DoResize = true
Exit Sub
End If
RePosForm = False
ScaleFactorX = Me.Width /MyForm.Width " Koľko zmena ?
ScaleFactorY = Me.Height /MyForm.Height
Resize_For_Resolution ScaleFactorX , ScaleFactorY , Me
MyForm.Height = Me.Height " Pamätaj na aktuálnu veľkosť
MyForm.Width = Me.Width klipart
End Sub
Private Sub Command1_Click ( )
Dim ScaleFactorX ako Single , ScaleFactorY ako Single
DesignX = Xpixels
Designy = Ypixels
RePosForm = TRUE
DoResize = False
" Nastavenie hodnôt obrazovky
Xtwips = Screen.TwipsPerPixelX
Ytwips = Screen.TwipsPerPixelY
Ypixels = Screen.Height /Ytwips " Y Pixel Rozlíšenie
Xpixels = Screen.Width /Xtwips " Pixel Rozlíšenie X
" Určenie merítka faktory
ScaleFactorX = ( Xpixels /DesignX )
ScaleFactorY = ( Ypixels /Designy )
Resize_For_Resolution ScaleFactorX , ScaleFactorY , Me
Label1.Caption = " Aktuálne rozlíšenie je " & Str $ ( Xpixels ) + _
" od " + Str $ ( Ypixels )
MyForm.Height = Me.Height " Pamätaj na aktuálnu veľkosť
MyForm.Width = Me.Width
end Sub
4
Pridať všetky ovládacie prvky , ktoré chcete testovať do formulára . Môžete pridať popisky , príkazové tlačidlá a obrazových políčok . Musíte urobiť, aby test , či všetky prvky na formulári upraviť ich veľkosť správne .
5
Prejsť na menu " Projekt " a vyberte " Pridať modul .... " Kliknite na " Add" pridať nový modul do projektu
6
Prejdite do nového modulu a vložiť kód , ktorý automaticky upraví proporcie formuláre vo vzťahu k rozlíšenie obrazovky : .
Verejné Xtwips As Integer , Ytwips As Integer
verejných Xpixels As Integer , Ypixels As Integer
Typ FRMSIZE
Výška Dokiaľ
Šírka As Long
End Type
verejné RePosForm As Boolean
verejné DoResize As Boolean
Sub Resize_For_Resolution ( byval SFX ako samostatné , _
byval SFY ako Single , MyForm ako forma )
Dim Aj As Integer
Dim SFFont ako jednotného
SFFont = ( SFX + SFY ) /2 " priemer stupnice
' Veľkosť Controls pre nové rozlíšenie
On Error Resume Next ' len na čítanie alebo neexistujúcich vlastností
S MyForm
i = 0 spočítať . - 1
Ak typeof . Ovládacie prvky ( I) je ComboBox Then ' nemožno zmeniť výšku
. Ovládacie prvky ( I) . Ľavé = . Controls ( I) . Ľavá * SFX
. Ovládacie prvky ( I) . Top = . Controls ( I) . Top * SFY
. Controls ( I) . šírka = . Controls ( I) . Šírka * SFX
Else
. Ovládacie prvky ( I) . Move . Ovládacie prvky ( I) . Ľavá * SFX , _
. Controls ( I) . Top * SFY , _
. Controls ( I) . šírka * SFX , _
. Controls ( I) . Výška * SFY
End If
" Zmena veľkosti a premiestniť pred zmenou veľkosť písma
. Controls ( I) . FontSize = . Controls ( I) . FontSize * SFFont
Ďalej som
Ak RePosForm Potom
"Teraz vel formulár
. presun . Ľavá * SFX . Top * SFY , . šírka * SFX . Výška * SFY
End If
End With
End Sub
7
Otestujte si svoje nové formy spustením ho v rôznych rozlíšeniach obrazovky . To by malo trvať do rovnakej oblasti plochy a udržať svoju pozíciu .