求救!!!!!!如何用api函數取分辨率的width(不用screen.width)
求救!!!!!!如何用api函數取分辨率的width(不用screen.width 问题点数:0、回复次数:3Top
1 楼rainstormmaster(暴风雨 v2.0)回复于 2003-11-03 21:18:53 得分 0
Option Explicit
Private Declare Function GetDeviceCaps Lib "gdi32" (ByVal hdc As Long, ByVal nIndex As Long) As Long
'取指定设备信息API函数
Const HORZRES = 8
'三个屏幕常量
Const VHORZRES = 10
Const BITSPIXEL = 12
Private Sub Command1_Click()
Dim mHeight As Long
Dim mWidth As Long
Dim mColor As Long
mWidth = GetDeviceCaps(Me.hdc, HORZRES)
Debug.Print mWidth '屏幕宽度
mHeight = GetDeviceCaps(Me.hdc, VHORZRES)
Debug.Print mHeight '屏幕高度
mColor = GetDeviceCaps(Me.hdc, BITSPIXEL)
Debug.Print mColor '屏幕颜色位数
End Sub
Top
2 楼lihonggen0(李洪根,MS MVP,标准答案来了)回复于 2003-11-04 09:10:15 得分 0
Option Explicit
Const ENUM_CURRENT_SETTINGS As Long = -1&
Const CCDEVICENAME = 32
Const CCFORMNAME = 32
Private Type DEVMODE
dmDeviceName As String * CCDEVICENAME
dmSpecVersion As Integer
dmDriverVersion As Integer
dmSize As Integer
dmDriverExtra As Integer
dmFields As Long
dmOrientation As Integer
dmPaperSize As Integer
dmPaperLength As Integer
dmPaperWidth As Integer
dmScale As Integer
dmCopies As Integer
dmDefaultSource As Integer
dmPrintQuality As Integer
dmColor As Integer
dmDuplex As Integer
dmYResolution As Integer
dmTTOption As Integer
dmCollate As Integer
dmFormName As String * CCFORMNAME
dmUnusedPadding As Integer
dmBitsPerPel As Integer
dmPelsWidth As Long
dmPelsHeight As Long
dmDisplayFlags As Long
dmDisplayFrequency As Long
End Type
Private Declare Function EnumDisplaySettings Lib "user32" Alias "EnumDisplaySettingsA" (ByVal lpszDeviceName As Long, ByVal iModeNum As Long, lpDevMode As Any) As Boolean
Private Sub Form_Load()
Dim DevM As DEVMODE
Call EnumDisplaySettings(0&, ENUM_CURRENT_SETTINGS, DevM)
MsgBox "Current screen width: " & DevM.dmPelsWidth & " pixels" & vbCrLf & _
"Current screen height: " & DevM.dmPelsHeight & " pixels" & vbCrLf & _
"Current color depth: " & DevM.dmBitsPerPel & " bits/pixel"
End Sub
Top
3 楼lihonggen0(李洪根,MS MVP,标准答案来了)回复于 2003-11-04 09:10:47 得分 0
Option Explicit
Const ENUM_CURRENT_SETTINGS As Long = -1&
Const CCDEVICENAME = 32
Const CCFORMNAME = 32
Private Type DEVMODE
dmDeviceName As String * CCDEVICENAME
dmSpecVersion As Integer
dmDriverVersion As Integer
dmSize As Integer
dmDriverExtra As Integer
dmFields As Long
dmOrientation As Integer
dmPaperSize As Integer
dmPaperLength As Integer
dmPaperWidth As Integer
dmScale As Integer
dmCopies As Integer
dmDefaultSource As Integer
dmPrintQuality As Integer
dmColor As Integer
dmDuplex As Integer
dmYResolution As Integer
dmTTOption As Integer
dmCollate As Integer
dmFormName As String * CCFORMNAME
dmUnusedPadding As Integer
dmBitsPerPel As Integer
dmPelsWidth As Long
dmPelsHeight As Long
dmDisplayFlags As Long
dmDisplayFrequency As Long
End Type
Private Declare Function EnumDisplaySettings Lib "user32" Alias "EnumDisplaySettingsA" (ByVal lpszDeviceName As Long, ByVal iModeNum As Long, lpDevMode As Any) As Boolean
Private Sub Form_Load()
Dim DevM As DEVMODE
Call EnumDisplaySettings(0&, ENUM_CURRENT_SETTINGS, DevM)
Debug.Print "Current screen width: " & DevM.dmPelsWidth & " pixels"
Debug.Print "Current screen height: " & DevM.dmPelsHeight & " pixels"
Debug.Print "Current color depth: " & DevM.dmBitsPerPel & " bits/pixel"
End Sub
Top




