0

いくつかのドキュメントを調べましたが、クリック時にウィンドウ内のカーソルの位置 (左上の 0,0 からのピクセル数) を取得する方法についての適切な説明が見つかりません。

どんな助けでも大歓迎です:D

4

1 に答える 1

1

マウスがクリックされた場所を報告する最小限のプログラムを次に示します。ウィンドウ内のマウス ポインターの x、y (左上が 0、0) の位置を含む Button Press イベントをピックアップするだけです。

#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 に答える