我正在编写一个需要与鼠标交互的程序,因此我希望在Linux下使用C++获取屏幕/显示器的宽度和高度。
我在谷歌和这里搜索了一下,但没有找到相关的信息。
谢谢
我正在编写一个需要与鼠标交互的程序,因此我希望在Linux下使用C++获取屏幕/显示器的宽度和高度。
我在谷歌和这里搜索了一下,但没有找到相关的信息。
谢谢
#include <X11/Xlib.h>
Display* d = XOpenDisplay(NULL);
Screen* s = DefaultScreenOfDisplay(d);
使用XOpenDisplay(NULL)来获取您的X服务器的主显示器(假设您只有一个基本的X配置...)
然后获取您想要分辨率的屏幕。 对于主屏幕,请使用DefaultScreenOfDisplay,否则使用:ScreenOfDisplay(display,screen_nb)。
然后获取您的Screen *结构。
您可以访问高度和宽度成员以获取分辨率!
s->height;
s->width;
这比使用WidthOfScreen/HeightOfScreen更好,因为它只需要一个请求来填充Screen结构。如果您已经在程序中使用Xlib并且有多个屏幕可供选择,则可能已经拥有它。
您可以使用ScreenCount(display)函数获取正在运行的显示器的数量。