用于linux的c ++中的屏幕分辨率

Mel*_*e42 1 c++ height screen width

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

Tho*_*rcq 5

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

例如,对于默认显示:

#include <X11/Xlib.h>

Display* d = XOpenDisplay(NULL);
Screen*  s = DefaultScreenOfDisplay(d);
Run Code Online (Sandbox Code Playgroud)

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

然后获取您想要分辨率的屏幕.对于主屏幕,请使用DefaultScreenOfDisplay,否则使用:ScreenOfDisplay(display,screen_nb).

然后你得到你的Screen*结构.

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

S->高度;

S->宽度;

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

您可以使用ScreenCount(显示)功能获取显示器上运行的屏幕数