User Tools

Site Tools


Sidebar

Programming Reference/Librarys

Question & Answer

Q&A is closed







c:graphics.h:mousex

mousex

Syntax of mousex

#include "graphics.h"
int mousex(void);
 

Description of mousex

The mousex function is available in the winbgim implementation of BGI
graphics. It returns the most recent x coordinate of the mouse within the
graphics window. X-coordinates start with 0 at the left edge of the
window and increase to getmaxx( ) at the right edge of the window.

Example of mousex

/* mouse example */
#include "graphics.h"
 
// The click_handler will be called whenever the left mouse button is
// clicked. It checks copies the x,y coordinates of the click to
// see if the click was on a red pixel. If so, then the boolean
// variable red_clicked is set to true. Note that in general
// all handlers should be quick. If they need to do more than a little
// work, they should set a variable that will trigger the work going,
// and then return.
bool red_clicked = false;
void click_handler(int x, int y)
{
    if (getpixel(x,y) == RED)
  red_clicked = true;
}
 
// Call this function to draw an isosoles triangle with the given base
and
// height. The triangle will be drawn just above the botton of the
screen.
void triangle(int base, int height)
{
    int maxx = getmaxx( );
    int maxy = getmaxy( );
 
    line(maxx/2 - base/2, maxy - 10, maxx/2 + base/2, maxy - 10);
    line(maxx/2 - base/2, maxy - 10, maxx/2, maxy - 10 - height);
    line(maxx/2 + base/2, maxy - 10, maxx/2, maxy - 10 - height);
}
 
void main(void)
{
    int maxx, maxy;  // Maximum x and y pixel coordinates
    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( );
 
    // Register the function that handles a left mouse click
    registermousehandler(WM_LBUTTONDOWN, click_handler);
 
    // 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 RED to end.");
    setcolor(BLUE);
    red_clicked = false;
    divisor = 2;
    while (!red_clicked)
    {
  triangle(maxx/divisor, maxy/divisor);
  delay(500);
  divisor++;
    }
 
    cout << "The mouse was clicked at: ";
    cout << "x=" << mousex( );
    cout << " y=" << mousey( ) << endl;
 
    // Switch back to text mode:
    closegraph( );
}

See also

output of mousex 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
c/graphics.h/mousex.txt · Last modified: 2024/02/16 01:05 (external edit)

Impressum Datenschutz