• 締切済み

X11に関して質問です。ウィンドウの属性の情報。

ウィンドウの属性の情報を知るプログラムを教えてください。 参考ページ:http://xjman.dsl.gr.jp/man/man3/XGetWindowAttributes.3x.html XGetWindowAttributes関数の使い方がよくわかりません。 XWindowAttributes構造体の一つ目のメンバの値を端末に表示するにはどうすればいいでしょうか? #include <X11/Xlib.h> #include <X11/Xutil.h> #include <stdio.h> #include <stdlib.h> int main() { Display *display; Window w; GC gc; XEvent event; XWindowAttributes *window_attributes_return; /* ディスプレイ・サーバに接続 */ display = XOpenDisplay(NULL); if(display == NULL){ fprintf(stderr, "Cannot open display.\n"); exit(1); } /* ウィンドウを生成 */ w = XCreateSimpleWindow(display, DefaultRootWindow(display), 50, 50, 400, 300, 1, BlackPixel(display, 0), WhitePixel(display, 0)); XSelectInput(display, w, ExposureMask); XMapWindow(display, w); /* GCの生成 */ gc = XCreateGC(display, w, 0, 0); /* リクエスト送信 */ XFlush(display); /* イベントループ */ while(1){ XNextEvent(display, &event); switch(event.type){ case Expose: XDrawLine(display, w, gc, 0, 0, 300, 300); /* ウィンドウの属性の情報を知る?? */ XGetWindowAttributes(display, w, window_attributes_return); printf("%d", window_attributes_return.x); break; } } /* Xサーバとの接続を解除 */ XCloseDisplay(display); return 0; }

みんなの回答

  • trapezium
  • ベストアンサー率62% (276/442)
回答No.1

そもそもコンパイル通るのか疑問ですが、少なくとも XWindowAttributes window_attributes_return; XGetWindowAttributes(display, w, &window_attributes_return); でないとおかしいです。またリファレンスマニュアルの見方も理解できてないように思えます。*_return となってるポインタ引数は、呼び出しサイドでメモリ確保するのが前提です。

purogu2017
質問者

お礼

回答有難うございます。

関連するQ&A