设备分辨率相关GetDeviceCaps(LOGPIXELSY)的奇怪的问题

wdj55439040 2010-08-04 10:34:27
为什么在屏幕分辨率改变的情况下GetDeviceCaps(LOGPIXELSY)函数返回的值总是不变的呢,总为96DPI


GetDeviceCaps(LOGPIXELSY)返回的应该是屏高方向上每逻辑英寸的像素数,而当屏幕分辨率改变时(例如从1600*900到800*600)后屏高方向的总像素改变了(从900到600像素了),而物理显示器的屏幕高度总是不变的(例如10英寸),按理说由GetDeviceCaps(LOGPIXELSY)得到的值应该==屏高方向总像素(例如1600) 除以 物理屏高(例如10英寸),但是在不同屏幕分辨率情况下,通过程序得到的这个值总是96,不知道是哪个概念理解有错误。
...全文
580 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zxdlms 2010-08-04
  • 打赏
  • 举报
回复
貌似显示器的DPI只是一个虚拟值,一英寸96个像素点,而这个一英寸并不是真实的一英寸。
wdj55439040 2010-08-04
  • 打赏
  • 举报
回复
难道没人知道原因?自己顶下
wdj55439040 2010-08-04
  • 打赏
  • 举报
回复
没太明白楼上的到底要表达什么意思
hastings 2010-08-04
  • 打赏
  • 举报
回复
是的~~我也很好奇~~
但是举个例子又觉得很对:
1280*1024的显示器,假设尺寸是:32cm*25.6cm
先改成1024*768的分辨率,然后全屏截图,保存;
这个时候这张图片的分辨率显然是1024*768,
那它的物理尺寸是多少?32cm*25.6cm?
接着你把显示器调回到1280*1024模式,
打开刚才截屏的图像。看看它是撑满屏幕还是什么?

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧