|
本帖最后由 wli_ww 于 2017-9-1 22:25 编辑
Public Type POINTAPI
x As Long
Y As Long
End Type
Option Explicit
Public Declare Function GetSystemMetrics32 Lib "user32" Alias "GetSystemMetrics" (ByVal nIndex As Long) As Long
Public Const SM_CXSCREEN = 0
Public Const SM_CYSCREEN = 1
Private Const HORZRES = 8
Private Const VERTRES = 10
Private Const LOGPIXELSX = 88
Private Const LOGPIXELSY = 90
Private Const TWIPSPERINCH = 1440
Public Declare Function GetDC Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function GetDeviceCaps Lib "gdi32" (ByVal hDC As Long, _
ByVal nIndex As Long) As Long
Public Declare Function ReleaseDC Lib "user32" (ByVal hwnd As Long, _
ByVal hDC As Long) As Long
Function getDPI(bX As Boolean) As Integer '???????
Dim hDC As Long, RetVal As Long
hDC = GetDC(0)
If bX = True Then
getDPI = GetDeviceCaps(hDC, LOGPIXELSX)
Else
getDPI = GetDeviceCaps(hDC, LOGPIXELSY)
End If
RetVal = ReleaseDC(0, hDC)
End Function
Function Pixel2TwipX(x As Long) As Long '????Pixel?Twip
Pixel2TwipX = (x / getDPI(True)) * TWIPSPERINCH
End Function
Function Pixel2TwipY(x As Long) As Long '????Pixel?Twip
Pixel2TwipY = (x / getDPI(False)) * TWIPSPERINCH
End Function
Function Pixel2PointX(x As Long) As Long '????Pixel?Point
Pixel2PointX = Pixel2TwipX(x) / 20
End Function
Function Pixel2PointY(x As Long) As Long '????Pixel?Point
Pixel2PointY = Pixel2TwipY(x) / 20
End Function
Function Twip2PixelX(x As Long) As Long '????Twip?Pixel
Twip2PixelX = x / TWIPSPERINCH * getDPI(True)
End Function
Function Twip2PixelY(x As Long) As Long '????Twip?Pixel
Twip2PixelY = x / TWIPSPERINCH * getDPI(False)
End Function
Function Point2PixelX(x As Long) As Long '????Point?Pixel
Point2PixelX = Twip2PixelX(x * 20)
End Function
Function Point2PixelY(x As Long) As Long '????Point?Pixel
Point2PixelY = Twip2PixelY(x * 20)
End Function
Function getScreenX() As Long '?????
Dim hDC As Long, RetVal As Long
hDC = GetDC(0)
getScreenX = GetDeviceCaps(hDC, HORZRES)
RetVal = ReleaseDC(0, hDC)
End Function
Function getScreenY() As Long '?????
Dim hDC As Long, RetVal As Long
hDC = GetDC(0)
getScreenY = GetDeviceCaps(hDC, VERTRES)
RetVal = ReleaseDC(0, hDC)
End Function
|
|