delphi – 为什么Screen返回的分辨率低于Windows 8平板电脑的分辨率?

我有一台 Windows 8平板电脑,全高清分辨率为1920×1080像素.

但是当我使用Delphi的Screen对象来获取Screen.Width和Screen.Height时,它将返回在Windows 8平板电脑上运行的1280×720的分辨率.

问题根源在哪里?在Windows(平板电脑)方面还是在Delphi方面?我使用Delphi 7到XE2的结果相同.这似乎是一个平板电脑问题,而不是一般的Windows 8问题,因为我在Windows 8.1台式机上没有这样的行为.

结论

我只是想强调我的问题的原因,因为它有点隐藏在评论中.
认情况下,我的平板电脑上的Windows 8使用150%DPI. 1080px是720px的150%.因此应用程序可以使用720px.将DPI百分比降低到100%会产生预期的1080px分辨率.

解决方法

这可能是与DPI有关的问题. Aero可以通过两种方式处理高DPI情况:

>对应用程序说,DPI大于标准96,让它自己扩展
>在应用程序中说,DPI通常为96,并使用一些图像缩放算法缩放它的窗口(产生模糊)

可能是第二种情况Aero不仅关于DPI,还关于屏幕分辨率.

如果第二种情况是你的情况,那么不要关闭缩放.只需让您的应用程序了解DPI:
http://www.rw-designer.com/DPI-aware – 一般信息
http://www.micro-isv.asia/2010/09/high-dpi-support-in-windows-vista-and-7/ – 德尔福

相关文章

 从网上看到《Delphi API HOOK完全说明》这篇文章,基本上都...
  从网上看到《Delphi API HOOK完全说明》这篇文章,基本上...
ffmpeg 是一套强大的开源的多媒体库 一般都是用 c/c+&#x...
32位CPU所含有的寄存器有:4个数据寄存器(EAX、EBX、ECX和ED...
1 mov dst, src dst是目的操作数,src是源操作数,指令实现的...