我正在使用以下代码:
Private Sub Form_Load()
ResWidth = Screen.Width \ Screen.TwipsPerPixelX
ResHeight = Screen.Height \ Screen.TwipsPerPixelY
ScreenRes = ResWidth & "x" & ResHeight
MsgBox (ScreenRes)
End Sub
以及其他我搜索过的类似代码。问题是,尽管我的实际分辨率为1920x1200,但我总是收到一个消息框,说我的分辨率为1200x1200。为什么我的结果不好?
最佳答案
不确定为什么不起作用,但是您可以使用Windows API。
Private Declare Function GetSystemMetrics Lib "user32" _
(ByVal nIndex As Long) As Long
然后,当您需要屏幕的宽度和高度时,请定义以下常量:
Private Const SM_CXSCREEN = 0
Private Const SM_CYSCREEN = 1
然后,您可以在需要的地方使用
GetSystemMetrics
。如果将声明和常量添加到模块(.BAS)更有意义,则只需将声明和常量设为公共即可。Dim width as Long, height as Long
width = GetSystemMetrics(SM_CXSCREEN)
height = GetSystemMetrics(SM_CYSCREEN)
GetSystemMetrics on Microsoft Support