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 <winbgim.h>
#include <stdio.h>
#include <string.h>

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:
mouse event in Dev-C
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

Advertisements