User Tools

Site Tools


c:graphics.h:setmousequeuestatus

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

c:graphics.h:setmousequeuestatus [2015/05/06 23:06]
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...  
 +
 +
  

on the occasion of the current invasion of Russia in Ukraine

Russian Stop this War

Impressum Datenschutz