GetDeviceCaps
这个不知道从哪个版本开始就获取不到准确的DPI了(修改后未注销),特意跑去翻文档重写了一份。
.版本 2
.子程序 getDpi, 整数型, 公开, 获取Dpi
.局部变量 fpFun, 整数型
.局部变量 hWnd, 整数型
.局部变量 hdc
.局部变量 hMonitor
.局部变量 nDpiX
.局部变量 nDpiY
hWnd = GetDesktopWindow ()
' ; win8.1+
fpFun = GetProcAddress (Shcore, “GetDpiForMonitor”)
.如果真 (fpFun > 0)
hMonitor = MonitorFromWindow (hWnd, #MONITOR_DEFAULTTOPRIMARY)
.如果真 (GetDpiForMonitor (hMonitor, 0, nDpiX, nDpiY) = #S_OK)
返回 (nDpiX)
.如果真结束
.如果真结束
' ;低版本
hdc = GetDC (hWnd)
nDpiX = GetDeviceCaps (hdc, #LOGPIXELSX)
' nDpiY = GetDeviceCaps (hdc, #LOGPIXELSY)
ReleaseDC (hWnd, hdc)
返回 (nDpiX)