3

我正在开发一款在 iOS 和桌面(Windows、Mac、Linux)上运行的多平台游戏。我希望游戏能够根据屏幕分辨率(以英寸为单位)调整某些 UI 元素的大小。这个想法是,如果一个按钮在任何界面中应该是 1/2 英寸左右,它将自动缩放该大小。

现在对于 iOS 设备,这个问题可以使用蛮力技术很好地解决。您可以查找设备的类型并使用硬编码表来确定每个设备的屏幕尺寸(以英寸为单位)。不是最优雅的解决方案,但足够了。

台式机是棘手的。我希望希望存在一种机制,通过该机制(某些?)监视器向操作系统报告其实际屏幕尺寸(以英寸为单位)。如果该机制存在并且我可以通过某种方式访问​​它,那么至少对于某些监视器来说,我可以获得不错的数字。但我从未在任何主要的操作系统 API 中遇到过这样的概念。

有没有办法在Win32中以英寸为单位询问屏幕尺寸?如果是这样,是否有实际提供此信息的监视器?

(如果答案是否定的:天哪,这看起来不是很有用吗?)

4

1 回答 1

3

对于 Windows,首先查看SetProcessDPIAware()有关关闭自动缩放的讨论,然后调用HDC 上的GetDeviceCaps( LOGPIXELSX )GetDeviceCaps( LOGPIXELSY )来确定显示器的 DPI。将活动显示器上的屏幕分辨率除以这些设置,就得到了尺寸。

另请参阅这篇文章,了解有关 DPI 感知应用程序的类似讨论。

于 2013-07-19T22:53:07.883 回答