01/10/2018, 22:39
[C/C++] Bắt sự kiện chuột trong C trên Ubuntu – Mouse event C on Ubuntu
[C/C++] Bắt sự kiện chuột trong C trên Ubuntu – Mouse event C on Ubuntu Tháng Năm 7, 2017 nguyenvanquan7826 LT C - C++ 3 responses Để bắt được sự kiện chuột trong ubuntu chúng ta sử dụng thư viện X11/Xlib.h. Cài thư viện này bằng ...
[C/C++] Bắt sự kiện chuột trong C trên Ubuntu – Mouse event C on Ubuntu
Để bắt được sự kiện chuột trong ubuntu chúng ta sử dụng thư viện X11/Xlib.h. Cài thư viện này bằng lệnh:
sudo apt-get install libx11-dev
Đây là một chuơng trình minh họa từ trang http://stackoverflow.com/questions/14553435/how-to-listen-for-mouse-events-in-linux
#include <stdio.h> #include <X11/Xlib.h> char *key_name[] = { "first", "second (or middle)", "third", "fourth", "fivth" }; int main(int argc, char **argv) { Display *display; XEvent xevent; Window window; if( (display = XOpenDisplay(NULL)) == NULL ) return -1; window = DefaultRootWindow(display); XAllowEvents(display, AsyncBoth, CurrentTime); XGrabPointer(display, window, 1, PointerMotionMask | ButtonPressMask | ButtonReleaseMask , GrabModeAsync, GrabModeAsync, None, None, CurrentTime); while(1) { XNextEvent(display, &xevent); switch (xevent.type) { case MotionNotify: printf("Mouse move : [%d, %d]n", xevent.xmotion.x_root, xevent.xmotion.y_root); break; case ButtonPress: printf("Button pressed : %sn", key_name[xevent.xbutton.button - 1]); break; case ButtonRelease: printf("Button released : %sn", key_name[xevent.xbutton.button - 1]); break; } } return 0; }
Tuy nhiên thì mình vẫn chưa biết cách sử dụng nó trong đồ họa. Rất mong các bạn chia sẻ về vấn đề này.
Tham khảo: Click chuột trong Dev-C++