请教一下为什么我用GetDeviceCaps拿到的屏幕长度宽度会不正常呢?
请教一下为什么我用GetDeviceCaps拿到的屏幕长度宽度会不正常呢?
实测量长度
横长约33.9cm
高度约27.1cm
GetDeviceCaps(hdc,4) 452 宽
GetDeviceCaps(hdc,6) 361 高
GetDeviceCaps(hdc,8) 1280 分辨率
GetDeviceCaps(hdc,10) 1024
不过拿DPI算值又正常
GetDeviceCaps(hdc,88) 96 沿屏幕宽度每逻辑英寸的像素数
GetDeviceCaps(hdc,90) 96 LOGPIXELSY
宽度 = 1280 * 25.4 /96 = 338mm //25.4mm/inch
高度 = 1024 * 25.4 /96 = 270.9mm
请问有朋友知道具体原因么。
hdc是用在窗体new了一个graphic的hdc.
------解决方案--------------------显示器屏幕尺寸吗?
HDC desktopDC = GetDC(GetDesktopWindow());
DWORD dwCmX = GetDeviceCaps(desktopDC, HORZSIZE) / 10;
DWORD dwCmY = GetDeviceCaps(m_hDCPrinter, VERTSIZE) / 10;