This shows you the differences between two versions of the page.
— |
c:graphics.h:setmousequeuestatus [2024/02/16 01:05] (current) |
||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ===== setmousequeuestatus ===== | ||
+ | |||
+ | |||
+ | ====Syntax of setmousequeuestatus ==== | ||
+ | <code c> | ||
+ | #include "graphics.h" | ||
+ | voud setmousequeuestatus(int kind, bool status=true); | ||
+ | </code> | ||
+ | |||
+ | |||
+ | ==== Description of setmousequeuestatus ==== | ||
+ | <code c> | ||
+ | The setmousequeuestatus function is available in the winbgim | ||
+ | implementation of BGI graphics. This function controls whether mouse | ||
+ | events of a particular kind are queued for processing. If the status | ||
+ | parameter is false, then mouse events of the specified kind are not | ||
+ | queued. This means that each time a mouse event of that kind occurs, any | ||
+ | previous events of the same kind are deleted. If the status parameter is | ||
+ | true, then mouse events of the specified kind are queued, and each call | ||
+ | to getmouseclick returns the details about the event at the front of the | ||
+ | queue. | ||
+ | When a window first opens, queuing is turned off for all events. | ||
+ | See also | ||
+ | clearmouseclick | ||
+ | ismouseclick | ||
+ | getmouseclick | ||
+ | Example | ||
+ | /* mouse example */ | ||
+ | #include | ||
+ | #include "graphics.h" | ||
+ | using namespace std; | ||
+ | |||
+ | int 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); | ||
+ | setmousequeuestatus(WM_LBUTTONDOWN); | ||
+ | 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 several times!"); | ||
+ | setcolor(BLUE); | ||
+ | divisor = 2; | ||
+ | while (!ismouseclick(WM_LBUTTONDOWN)) | ||
+ | { | ||
+ | delay(5000); // Five second delay, so there might be a several | ||
+ | clicks | ||
+ | } | ||
+ | |||
+ | while (ismouseclick(WM_LBUTTONDOWN)) | ||
+ | { | ||
+ | getmouseclick(WM_LBUTTONDOWN, x, y); | ||
+ | cout << "The mouse was clicked at: "; | ||
+ | cout << "x=" << x; | ||
+ | cout << " y=" << y << endl; | ||
+ | } | ||
+ | |||
+ | // Switch back to text mode: | ||
+ | closegraph( ); | ||
+ | } | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | ==== Example of setmousequeuestatus ==== | ||
+ | <code c> | ||
+ | /* mouse example */ | ||
+ | #include | ||
+ | #include "graphics.h" | ||
+ | using namespace std; | ||
+ | |||
+ | int 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); | ||
+ | setmousequeuestatus(WM_LBUTTONDOWN); | ||
+ | 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 several times!"); | ||
+ | setcolor(BLUE); | ||
+ | divisor = 2; | ||
+ | while (!ismouseclick(WM_LBUTTONDOWN)) | ||
+ | { | ||
+ | delay(5000); // Five second delay, so there might be a several | ||
+ | clicks | ||
+ | } | ||
+ | |||
+ | while (ismouseclick(WM_LBUTTONDOWN)) | ||
+ | { | ||
+ | getmouseclick(WM_LBUTTONDOWN, x, y); | ||
+ | cout << "The mouse was clicked at: "; | ||
+ | cout << "x=" << x; | ||
+ | cout << " y=" << y << endl; | ||
+ | } | ||
+ | |||
+ | // Switch back to text mode: | ||
+ | closegraph( ); | ||
+ | } | ||
+ | </code> | ||
+ | |||
+ | |||
+ | ==== See also ==== | ||
+ | [[clearmouseclick]] | ||
+ | [[ismouseclick]] | ||
+ | [[getmouseclick]] | ||
+ | |||
+ | |||
+ | ===== output of setmousequeuestatus example ===== | ||
+ | |||
+ | no output of example at the moment | ||
+ | do not hesitate and add it... | ||
+ | |||
+ | |||