C를 사용하여 Xlib를 통해 디스플레이의 화면 크기를 얻을 수 있는 방법이 있습니까? X.org 문서를 참고해 보았습니다(https://tronche.com/gui/x/xlib/display/screen-information.html), 정수를 허용하지 않는 매크로만 제공하므로 당황스럽습니다.
나는 특히 이러한 기능을 이런 방식으로 사용했습니다.
int sx;
int sy;
XWidthOfScreen(sx);
XWidthOfScreen(sy);
...
move_window(sx / 4)
move_window(sy / 4)
저는 C 프로그래밍에 익숙하지 않고 첫 번째 프로젝트를 진행 중입니다.
답변1
이것은 디스플레이 크기를 인쇄하고 (환경 변수에 올바르게 설정된 경우) 실행되는 터미널 에뮬레이터의 창을 WINDOWID
너비/4, 높이/4로 이동하는 간단한 예입니다.
#include <X11/Xlib.h>
#include <err.h>
#include <stdio.h>
#include <stdlib.h>
int main(int ac, char **av){
char *wid; Display *dpy; Window w;
int width, height, snum;
if(!(dpy = XOpenDisplay(0)))
errx(1, "cannot open display '%s'", XDisplayName(0));
snum = DefaultScreen(dpy);
width = DisplayWidth(dpy, snum);
height = DisplayHeight(dpy, snum);
printf("display size is %d x %d\n", width, height);
if((wid = getenv("WINDOWID")) && (w = strtoul(wid, 0, 0))){
XMoveWindow(dpy, w, width / 4, height / 4);
XSync(dpy, False);
}
return 0;
}
내 조언은X11 프로그래밍 매뉴얼는 검색할 수 있고 X11 프로그래밍에 대한 모든 것을 포함하는 단일 페이지 HTML입니다.
gtk, qt, sdl 등과 같은 보다 친숙하고 이식 가능한 라이브러리가 있을 수 있습니다. libX11 디렉토리 대신 이들 중 하나를 사용하는 것이 좋습니다.