x윈도우상에서 마우스의 좌표를 어떻게 구하는지.. ㅜㅜ

koyoch의 이미지

x윈도우상에서 마우스의 좌표를 구하고 싶은데 좀 어렵네요..
처음에는 간단할 줄알았는데..
윈도우를 생성하고 발생하는 이벤트를 통해서 마우스의 좌표값을
알아내는 방식말고..(이런 방식은 윈도우 창에서 밖에 마우스의 위치를 알수 있더군요.. )
창 생성없이 윈도우의 마우스 좌표를 알아내는 방법이 없을까요..
고수님들의 도움을 부탁드립니다..
도와주시면 감솨하겠습니다.. ㅎㅎ

cinsk의 이미지

XQueryPointer(3X)를 쓰시면 됩니다.

#include <stdio.h>
#include <stdlib.h>
#include <X11/Xlib.h>

int
main(void)
{
  Display *disp = XOpenDisplay(NULL);
  Window rootwin, childwin;
  int rootx, rooty;
  int winx, winy;
  unsigned mask;

  if (!disp) {
    fprintf(stderr, "can't open the display %s\n",
            getenv("DISPLAY") != 0 ? getenv("DISPLAY") : "NULL");
    return 1;
  }

  if (XQueryPointer(disp, DefaultRootWindow(disp), &rootwin, &childwin,
                    &rootx, &rooty, &winx, &winy, &mask) != True) {
    fprintf(stderr, "error: XQueryPointer(3X) failed\n");
    XCloseDisplay(disp);
    return 1;
  }

  printf("Mouse Position = (%d, %d)\n", rootx, rooty);

  return 0;
}

--
C FAQ: http://www.eskimo.com/~scs/C-faq/top.html
Korean Ver: http://www.cinsk.org/cfaqs/

koyoch의 이미지

정말 감사합니다...
이것 때문에 여기저기 돌아 다녔는데..ㅎㅎ
음.. 레퍼런스싸이트가 있나요??
암튼 정말 감사합니다...