#include "graphics.h" bool ismouseclick(int kind);
![[WIN]](win.gif)
ismouseclick is
one of these constants from the graphics.h file:
WM_MOUSEMOVE
WM_LBUTTONDBLCLK
WM_LBUTTONDOWN
WM_LBUTTONUP
WM_MBUTTONDBLCLK
WM_MBUTTONDOWN
WM_MBUTTONUP
WM_RBUTTONDBLCLK
WM_RBUTTONDOWN
WM_RBUTTONUP
The middle mouse button handlers aren't working on my machine. I haven't yet tracked down the reason--it could be a broken mouse or it could be a bug in my programming.
A mouse event can be processed by calling
getmouseclick
(which gets the coordinates of the event), or by calling
clearmouseclick
(which processes the event without providing its coordinates).
/* mouse example */
#include "graphics.h"
void main(void)
{
int maxx, maxy; // Maximum x and y pixel coordinates
int x, y; // Coordinates of the mouse click
int divisor; // Divisor for the length of a triangle side
// Put the machine into graphics mode and get the maximum coordinates:
initwindow(450, 300);
maxx = getmaxx( );
maxy = getmaxy( );
// Draw a white circle with red inside and a radius of 50 pixels:
setfillstyle(SOLID_FILL, RED);
setcolor(WHITE);
fillellipse(maxx/2, maxy/2, 50, 50);
// Print a message and wait for a red pixel to be double clicked:
settextstyle(DEFAULT_FONT, HORIZ_DIR, 2);
outtextxy(20, 20, "Left click in to end.");
setcolor(BLUE);
divisor = 2;
while (!ismouseclick(WM_LBUTTONDOWN))
{
triangle(maxx/divisor, maxy/divisor);
delay(500);
divisor++;
}
getmouseclick(WM_LBUTTONDOWN, x, y);
cout << "The mouse was clicked at: ";
cout << "x=" << x;
cout << " y=" << y << endl;
// Switch back to text mode:
closegraph( );
}