Как да получите височината и ширината на екрана в C

Получавам следния код.

typedef struct _display {
int fd;         /* Network socket. */
Window root;        /* Root window id. */
int vnumber;        /* X protocol version number. */
int dtype;      /* X server display device type. */
int dplanes;        /* Number of display bit planes. */
int dcells;     /* Number of display color map cells. */
_QEvent *head, *tail;   /* Input event queue. */
int qlen;       /* Length of input event queue */
int request;        /* Id of last request. */
char * lastdraw;    /* Last draw request. */
char *buffer;       /* Output buffer starting address. */
char *bufptr;       /* Output buffer index pointer. */
char *bufmax;       /* Output buffer maximum+1 address. */
int squish;     /* Squish MouseMoved events? */
Pixmap black, white;    /* Constant tile pixmaps */
char *displayname;  /* "host:display" string used on this connect*/
int width, height;  /* width and height of display */
} Display;

Но това, което не разбирам, е къде X получава ширината и височината на монитора. Някой случайно да знае отговора или да ме насочи в правилната посока?

Благодаря, арх


person Archxiao    schedule 25.01.2013    source източник
comment
В последния ред има два атрибута: ширина и височина на дисплея. Това не работи ли?   -  person junix    schedule 25.01.2013


Отговори (2)


Получаване на размер на екрана

person rashok    schedule 25.01.2013
comment
Значи анализира Xrandr за размера на екрана? - person Archxiao; 25.01.2013
comment
Няма значение, благодаря за тази насока (хаха, разбра ли? Направих справка за програмиране...) Сега разбирам! - person Archxiao; 25.01.2013
comment
@Archxiao размерът на екрана за широк дисплей няма смисъл, така че по-добре избягвайте да разчитате на тези стойности за каквото и да било. Между другото, откъде взехте такъв хедър? Тук имам друга дефиниция (libx11 1.5.0), без ширина и височина. (BTW, легитимно е различните реализации на Xlib да имат напълно различни вътрешни структури). - person Anton Kovalenko; 25.01.2013
comment
Взех моя от по-ранната версия на XServer (X.V10R3). - person Archxiao; 26.01.2013
comment
Линукс отговорът го няма. ;) :/ - person Eric Sebasta; 15.08.2020

Защо не получите атрибутите на основния прозорец?

XWindowAttributes ra;
XGetWindowAttributes(dpy, DefaultRootWindow(dpy), &ra);
w = ra.width;
h = ra.height;
person sikerbela    schedule 21.11.2016