您可以用下面给出这一小段代码检测当前屏幕分辨率,然后根据结果作出反应──例如,重新调整窗体大小以适应用程序户分辨率。
创新互联-专业网站定制、快速模板网站建设、高性价比姜堰网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式姜堰网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖姜堰地区。费用合理售后完善,10年实体公司更值得信赖。
Public Function CheckRez(pixelWidth As Long, pixelHeight As Long) As Boolean
'
Dim lngTwipsX As Long
Dim lngTwipsY As Long
'
' convert pixels to twips
lngTwipsX = pixelWidth * 15
lngTwipsY = pixelHeight * 15
'
' check against current settings
If lngTwipsX Screen.Width Then
CheckRez = False
Else
If lngTwipsY Screen.Height Then
CheckRez = False
Else
CheckRez = True
End If
End If
'
End Function
Next, run the following code at the start of the program:
If CheckRez(640, 480) = False Then
MsgBox "Incorrect screen size!"
Else
MsgBox "Screen Resolution Matches!"
End If
Screen.Width 是屏幕的绝对宽度,单位是twip(1twip=1/1440英寸)
Screen.Height 是屏幕的绝对高度,单位是twip
Screen.Width/Screen.TwipsPerPixelX 是屏幕的相对宽度,单位是像素pixel,其值根据分辨率大小而不同,TwipsPerPixelX是美像素有多少twip
Screen.Height/Screen.TwipsPerPixelY 是屏幕的相对宽度,单位是像素pixel
默认单位是像素
96是系统的一种设定,每英寸的点数,是系统界面用小字体时的设置
用像素数除以dpi没有意义
窗体的 SizeFromClientSize 属性是工作区域大小。
Me.SizeFromClientSize(New Size(200, 300))
VB中获取显示器尺寸
将窗体 属性 ScaleMode 设为 5: 英寸
这是显示的属性 ScaleWidth 是英寸
再由 API 调用 获取 窗体客户区 长宽,屏幕长宽
可以换算出 屏幕长宽 的英寸数
显示器尺寸就是对角线的长度
Private Type RECT
Left As Long
Top As Long
Right As Long
Bottom As Long
End Type
Private Declare Function GetDesktopWindow Lib "user32" () As Long
Private Declare Function GetClientRect Lib "user32" (ByVal hwnd As Long, lpRect As RECT) As Long
Private Sub Command1_Click()
Dim h As Long
Dim rwindow As RECT
Dim rdesk As RECT
Dim l As Single
Dim t As Single
h = GetDesktopWindow
GetWindowRect h, rdesk
GetClientRect Me.hwnd, rwindow
Me.ScaleMode = 5'英寸
l = Me.ScaleWidth / rwindow.Right * rdesk.Right
t = Me.ScaleHeight / rwindow.Bottom * rdesk.Bottom
Print Sqr(l * l + t * t)
End Sub
最简单的方法:
Private Sub Form_Load()
Debug.Print Screen.Width / Screen.TwipsPerPixelX "," Screen.Height / Screen.TwipsPerPixelY
End Sub