Nếu bạn nào lập trình với DEV C mà muốn sử dụng chuột để vẽ hình thay vì nhập tọa độ thì có thể sử dụng cách này.
Trong thư viện graphics.h sử dụng các hàm sau đây:
int mousex (void); trả về tọa độ x của chuột trên cửa sổ BGI ngay thời điểm gọi hàm.
int mousey (void); tương tự như mousex
void getmouseclick(int kind, int& x, int& y); lấy tọa độ x,y của chuột khi bấm chuột với nut bấm là biến kind.
VD:
getmouseclick(WM_LBUTTONDOWN, x, y); lấy toạ độ lưu vào 2 biến x,y khi bấm nút chuột trái.
WM_LBUTTONDOWN là hằng được định nghĩa trong graphics.h.
Còn các hàm khác các bạn vào
[You must be registered and logged in to see this link.] tham khảo thêm.
vd code đợi người dùng click chuột trái lên màn hình và lưu vị trí click chuột lại vào hai biến x,y:
int button_mouse=0,x,y;
clearmouseclick(WM_RBUTTONDOWN);
while (!button_mouse) // kiem tra co click chuot trai hay chua
{
Sleep(100);
button_mouse=ismouseclick(WM_LBUTTONDOWN); //khi click chuot trai thi bien button_mouse=true
}
getmouseclick(WM_LBUTTONDOWN, x,y); // sau khi click chuot thoat vong lap va luu gia tri toa do vao x,y
vd về tạo button xử lý sự kiện nhấn bút.
raw_button(480,0,670,30,14,"click o day de thoat",15);
//ham để vẽ 1 nút trong vùng(480,0,670,30,14) có chữ là "click o day de thoat" với đường biên màu trắng.
while (1)
{
Sleep(100);
buttuon=ismouseclick(WM_LBUTTONDOWN);
getmouseclick(WM_LBUTTONDOWN, mx, my);
if((buttuon)&& test(480,0,670,30,mx,my))return; //hàm test kiểm tra tọa độ click có thuộc vùng (480,0,670,30) không
}
định nghĩa của raw_button và test.
int test(int x1,int y1,int x2,int y2,int mx,int my)
{
if((mx>x1) && (mx<x2) && (my>y1) && (my<y2))return 1;
return 0;
}
void raw_button(int x1,int y1,int x2,int y2,char color,char* text,char color_text)
{
int c=getcolor();
setcolor(color);
rectangle( x1, y1, x2, y2);
setcolor(color_text);
settextjustify (0 ,CENTER_TEXT );
outtextxy(x1,(y2+y1)/2,text);
setcolor(c);
}
Các bạn dùng code này kiểm tra người dùng click vào button (button co thể được vẽ bàng hàm rectangle với tham số là vùng chứa nút ) để gọi hàm xử lý tương ứng khi tọa độ trả về thuộc vùng đã định nghĩa.
Mình có gửi bài tập kỹ thuật đồ hoạ của mình có sử dụng chuột trong đó. Các bạn chạy thử, sau khi báo cáo xong minh sẽ gửi code lên luôn.
[You must be registered and logged in to see this link.]Đây là link chứa code :
[You must be registered and logged in to see this link.]