请教一下为什么我用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)96LOGPIXELSY
宽度 = 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;