[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++
cái này sử dụng trên Window có được không hả anh ?!
Nếu được thì mình cài thêm thư viện hay phải cài thêm gì ạ ?!
Tks !
Được nhé. Bạn xem ở đây: https://cachhoc.net/2013/10/03/cc-click-chuot-trong-dev-c-mouse-event-in-dev-c/