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を直接使用する代わりに、これらのいずれかを使用できます。