首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

请问一上为什么小弟我用GetDeviceCaps拿到的屏幕长度宽度会不正常呢

2012-12-23 
请教一下为什么我用GetDeviceCaps拿到的屏幕长度宽度会不正常呢?请教一下为什么我用GetDeviceCaps拿到的屏

请教一下为什么我用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;

热点排行