0

我浏览了一些文档,但找不到关于如何在单击窗口中获取光标位置(以左上角 0,0 的像素为单位)的很好描述。

任何帮助表示赞赏:D

4

1 回答 1

1

这是一个报告鼠标点击位置的最小程序。它只是拾取 Button Press 事件,其中包含窗口中鼠标指针的 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;
}
于 2013-04-24T21:05:33.087 回答