gpt4 book ai didi

c++ - 如何检测当前的屏幕分辨率?

转载 作者:IT老高 更新时间:2023-10-28 12:32:51 24 4
gpt4 key购买 nike

如何从 Winapi(C 或 C++ 中)检测当前屏幕分辨率?

一些背景:

我想启动一个新的 OpenGL 全屏窗口,但希望它以与桌面已设置的相同的水平和垂直大小打开。 (现在每个人都使用 LCD 屏幕,我认为这是获得屏幕原始分辨率的最佳方式。)

我并不迫切需要知道桌面颜色深度,尽管那将是一个不错的奖励。

最佳答案

  • 主监视器的大小:GetSystemMetrics SM_CXSCREEN/SM_CYSCREEN(也可以使用GetDeviceCaps)
  • 所有监视器的大小(组合):GetSystemMetrics SM_CX/YVIRTUALSCREEN
  • 主监视器上的工作区大小(屏幕不包括任务栏和其他停靠栏):SystemParametersInfo SPI_GETWORKAREA
  • 特定显示器的大小(工作区和“屏幕”):GetMonitorInfo

编辑:重要的是要记住,监视器并不总是在 0x0 处“开始”,因此仅知道大小不足以定位您的窗口。您可以使用 MonitorFromWindow 找到您的窗口所在的监视器,然后调用 GetMonitorInfo

如果你想走低级路线或改变分辨率,你需要使用 EnumDisplayDevices、EnumDisplaySettings 和 ChangeDisplaySettings(这是获得刷新率 AFAIK 的唯一方法,但 GetDeviceCaps 会告诉你颜色深度)

关于c++ - 如何检测当前的屏幕分辨率?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4631292/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com