在X11中单击光标的XY坐标

时间:2013-04-23 05:12:02

标签: c cursor position mouseevent x11

我查看了一些文档但是找不到如何在点击窗口中获取光标位置(从左上角0,0的像素方面)的很好的描述。

感谢任何帮助:D

1 个答案:

答案 0 :(得分:1)

这是一个报告鼠标点击位置的最小程序。它只是拾取按钮按下事件,其中包含鼠标指针在窗口中的x,y(左上角为0,0)位置。

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

int main(int argc, char**argv)
{
    Display *display = XOpenDisplay(NULL);

    Window window = XCreateSimpleWindow(
        display, RootWindow(display,0), 0, 0,
        600, 600, 1, BlackPixel(display, 0),
        WhitePixel(display, 0));

    XMapWindow(display, window);

    XSelectInput(display, window, ButtonPressMask);

    XEvent event;
    while (1)
    {
        XNextEvent(display, &event);
        switch  (event.type) {
        case ButtonPress:
            printf("Clicked at %d,%d\n", event.xbutton.x, event.xbutton.y);
            break;
        }
    }

    return 0;
}