Sự kiện chuột trong C

Trong bài viết này mình sẽ hướng dẫn về một số hàm bắt sự kiện click chuột trong chế độ đồ họa Dev-C++.

void getmouseclick( int kind, int& x, int& y );
-> lấy tọa độ x,y ( theo pixel) mà ở đó có click
bool ismouseclick( int kind );
-> trả về true nếu xảy ra click
int mousex( ); -> lấy tọa độ chuột theo trục x
int mousey( ); -> lấy tọa độ chuột theo trục y

WM_MOUSEMOVE : bắt sự kiện khi di chuyển chuột trong màn hình đồ họa
WM_LBUTTONDBLCLK : bắt sự kiện khi nhấn đúp chuột trái
WM_LBUTTONDOWN : bắt sự kiện khi nhấn chuột trái
WM_LBUTTONUP : bắt sự kiện khi thả sau khi nhấn chuột trái
Tuơng tự với chuột giữa và chuột phải
WM_MBUTTONDBLCLK
WM_MBUTTONDOWN
WM_MBUTTONUP
WM_RBUTTONDBLCLK
WM_RBUTTONDOWN
WM_RBUTTONUP

Còn rất nhiều hàm khác bạn xem tại đây: http://www.cs.colorado.edu/~main/bgi/doc/

Một đoạn code minh họa bắt sự kiện chuột trái, phải.

#include #include #include int main(){ setbkcolor(1); int x, y; initwindow(800,500); setbkcolor(15); cleardevice(); while (1){ delay(0.0001); if (ismouseclick(WM_LBUTTONDOWN)){ getmouseclick(WM_LBUTTONDOWN, x, y); printf("left click : (%d,%d)\n", x, y); } if (ismouseclick(WM_LBUTTONUP)){ getmouseclick(WM_LBUTTONUP, x, y); printf("left up click : (%d,%d)\n", x, y); } if (ismouseclick(WM_LBUTTONDBLCLK)){ getmouseclick(WM_LBUTTONDBLCLK, x, y); printf("left double click : (%d,%d)\n", x, y); } if (ismouseclick(WM_RBUTTONDOWN)){ getmouseclick(WM_RBUTTONDOWN, x, y); printf("right click : (%d,%d)\n", x, y); } if (ismouseclick(WM_RBUTTONUP)){ getmouseclick(WM_RBUTTONUP, x, y); printf("right up click : (%d,%d)\n", x, y); } if (ismouseclick(WM_RBUTTONDBLCLK)){ getmouseclick(WM_RBUTTONDBLCLK, x, y); printf("right double click : (%d,%d)\n", x, y); } if (ismouseclick(WM_MOUSEMOVE)){ getmouseclick(WM_MOUSEMOVE, x, y); printf("move : (%d,%d)\n", x, y); } } system("pause"); closegraph(); }

Kết quả khi click và di chuyển chuột trong màn hình đồ họa:

Một đoạn video mình quay cái vẽ đường thằng bằng chuột nhưng chưa chuẩn vì còn lỗi:

Tham khảo: Đồ họa trong Dev-C