linux版c++中的屏幕分辨率

Screen resolution in c++ for linux

本文关键字:屏幕 分辨率 c++ linux      更新时间:2023-10-16

我写了一个必须与鼠标交互的程序,所以我想用c++为linux获取屏幕/监视器的宽度和高度。我在谷歌和这里搜索,没有找到任何东西。感谢

您可以使用XLibs函数来获取显示器的大小。

例如,对于非默认显示:

#include <X11/Xlib.h>
Display* d = XOpenDisplay(NULL);
Screen*  s = DefaultScreenOfDisplay(d);

XOpenDisplay(NULL)以获取X服务器的主显示器(假设您有一个只有一个显示器的基本X配置…)

然后得到你想要的屏幕分辨率。对于主屏幕,请使用DefaultScreenOfDisplay,否则请使用:ScreenOfDisplay(display,screen_nb)。

然后你得到你的屏幕结构。

您可以访问高度和宽度成员以获得分辨率!

s->高度;

s->宽度;

这比使用WidthOfScreen/HeightOfScreen要好,因为填充Screen结构只需要一个请求。如果你在程序中使用了Xlib,并且你可以选择屏幕(在多个屏幕的情况下),那么你可能已经拥有了它。

您可以使用ScreenCount(display)函数

来获取显示器上运行的屏幕数量

如果您在X环境中,您可以使用Xlib:http://tronche.com/gui/x/xlib/display/screen-information.html

屏幕宽度和屏幕高度