首页  >  文章  >  后端开发  >  如何确定 Winapi (C/C) 中全屏 OpenGL 窗口的最佳分辨率?

如何确定 Winapi (C/C) 中全屏 OpenGL 窗口的最佳分辨率?

Barbara Streisand
Barbara Streisand原创
2024-10-26 10:24:03110浏览

How can I determine the optimal resolution for a fullscreen OpenGL window in Winapi (C/C  )?

在 Winapi 中检测当前屏幕分辨率(C/C )

在当今的 LCD 屏幕世界中,确定新创建的 OpenGL 全屏窗口的最佳分辨率至关重要提供无缝的用户体验。 Winapi 提供了多种获取屏幕分辨率信息的方法,以满足不同的使用场景。

主显示器分辨率

要获取主显示器的尺寸,您可以使用以下 Winapi 函数:

  • 水平维度的 GetSystemMetrics(SM_CXSCREEN)
  • 垂直维度的 GetSystemMetrics(SM_CYSCREEN)

或者,GetDeviceCaps 也可用于此目的。

组合显示器分辨率

要确定系统中所有显示器的组合尺寸,请使用:

  • GetSystemMetrics(SM_CXVIRTUALSCREEN) 作为水平尺寸
  • GetSystemMetrics(SM_CYVIRTUALSCREEN) 获取垂直尺寸

工作区域分辨率

对于主显示器上工作区域的大小(不包括任务栏和停靠栏),请使用:

  • SystemParametersInfo(SPI_GETWORKAREA)

特定显示器分辨率

要检索特定显示器的尺寸(包括工作区域和屏幕):

  • GetMonitorInfo

注意: 请记住,监视器坐标并不总是从 0x0 开始,这一点至关重要。因此,仅仅知道窗口的大小不足以准确定位窗口。利用 MonitorFromWindow 识别窗口所在的监视器,然后调用 GetMonitorInfo。

低级控制

要访问较低级别的分辨率管理或更改屏幕设置,请考虑以下函数:

  • EnumDisplayDevices:枚举显示设备
  • EnumDisplaySettings:枚举支持的显示设置
  • ChangeDisplaySettings:修改显示设置

此方法是对于检索屏幕刷新率(不是由 GetDeviceCaps 直接提供)或调整分辨率特别有用。

以上是如何确定 Winapi (C/C) 中全屏 OpenGL 窗口的最佳分辨率?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn