Casos de uso de programación con mouse en C/C++

En este artículo, discutiremos algunos casos de uso de la programación del mouse :

Mostrar el puntero del mouse en modo gráfico :

Para mostrar el puntero del mouse, primero habilite el modo gráfico usando la función initgraph() , si se inicializó con éxito, llamará a la función initMouse() para verificar si el mouse está disponible o no. Si la función initMouse() devuelve un valor distinto de 0, significa que regresará ffffh luego llama a la función showMouse() y muestra el cursor en la ventana de la consola en modo gráfico. A continuación se muestran las funciones utilizadas: 

  • initMouse(): se usa para inicializar el mouse.
  • showMouse(): muestra el puntero del mouse en la pantalla de salida.

A continuación se muestra el programa para el mismo:

C

// C program to display Mouse
// pointer in Graphics Mode
#include <conio.h>
#include <dos.h>
#include <graphics.h>
#include <stdio.h>
union REGS in, out;
  
// Function to display the mouse
// pointer
void showMouse()
{
    // Set service AX = 1 for
    // displaying mouse
    in.x.ax = 1;
    int86(0X33, &in, &out);
}
  
// Function to initialize the mouse
// pointer
int initMouse()
{
    // Set service AX = 0 for
    // detecting mouse
    in.x.ax = 0;
    int86(0x33, &in, &out);
    return out.x.ax;
}
  
// Driver Code
void main()
{
    int status, gd = DETECT, gm;
    clrscr();
  
    initgraph(&gd, &gm,
              "C:\\TURBOC3\\BGI");
  
    // Get the status of mouse pointer
    status = initMouse();
  
    // Check mouse is available or not
    if (status == 0)
        printf("Mouse support not"
               " available.\n");
    else {
        printf("Display mouse");
        showMouse();
    }
  
    getch();
  
    // Close the graphics
    closegraph();
}

C++

// C++ program to display Mouse
// pointer in Graphics Mode
#include <bits/stdc++.h>
#include <conio.h>
#include <dos.h>
#include <graphics.h>
#include <stdio.h>
using namespace std;
union REGS in, out;
  
// Function to display the mouse
// pointer
void showMouse()
{
    // Set service AX = 1 for
    // displaying mouse
    in.x.ax = 1;
    int86(0X33, &in, &out);
}
  
// Function to initialize the mouse
// pointer
int initMouse()
{
    // Set service AX = 0 for
    // detecting mouse
    in.x.ax = 0;
    int86(0x33, &in, &out);
  
    return out.x.ax;
}
  
// Driver Code
void main()
{
    int status, gd = DETECT, gm;
    clrscr();
  
    initgraph(&gd, &gm, "C:\\TURBOC3\\BGI");
  
    // Get the status of mouse pointer
    status = initMouse();
  
    // Check if mouse is available or not
    if (status == 0)
        cout << "Mouse support not"
             << " available.\n";
    else {
        cout << "Display mouse";
        showMouse();
    }
  
    getch();
  
    // Close the graphics
    closegraph();
}

Producción:

Display Mouse Pointer in graphics mode

Ocultar puntero del mouse :

Para ocultar el puntero del mouse, primero verifique el estado del mouse si está disponible, luego simplemente el control ingresará en for loop make delay de 500 milisegundos, luego aparecerá el mouse, luego desaparecerá después de 500 milisegundos y se mostrará nuevamente después de 500 milisegundos. Esta secuencia continuará hasta que termine el bucle. La función de retraso se ha utilizado para mostrarle el impacto de   la función hidemouse()

  • initmouse(): se usa para inicializar el mouse.
  • showmouse(): muestra el puntero del mouse en la pantalla de salida.
  • hidemouse(): oculta el puntero del mouse

A continuación se muestra el programa para el mismo:

C

// C program for hiding Mouse Pointer
#include <conio.h>
#include <dos.h>
#include <graphics.h>
  
union REGS in, out;
  
// Function to initialize the mouse
// pointer using graphics
int initMouse()
{
    in.x.ax = 0;
    int86(0X33, &in, &out);
  
    return out.x.ax;
}
  
// Function to display the mouse
// pointer using graphics
void showMouse()
{
    in.x.ax = 1;
    int86(0X33, &in, &out);
}
  
// Function to hide the mouse
// pointer using graphics
void hideMouse()
{
    // Set AX=2 to hide mouse
    in.x.ax = 2;
    int86(0X33, &in, &out);
}
  
// Driver Code
void main()
{
    int status, i, gd = DETECT, gm;
  
    // Initialize graphics
    initgraph(&gd, &gm, "C:\\TURBOC3\\BGI");
  
    // Get the status of the mouse
    status = initMouse();
  
    // Check if mouse is available or not
    if (status == 0)
        printf("Mouse support "
               "not available.\n");
    else {
        for (i = 0; i <= 10; i++) {
  
            // Pause execution for .5 sec
            delay(500);
            showMouse();
            delay(500);
            hideMouse();
        }
    }
  
    getch();
  
    // Close the graphics
    closegraph();
}

C++

// C++ program for hiding Mouse Pointer
#include <bits/stdc++.h>
#include <conio.h>
#include <dos.h>
#include <graphics.h>
using namespace std;
  
union REGS in, out;
  
// Function to initialize the mouse
// pointer using graphics
int initMouse()
{
    in.x.ax = 0;
    int86(0X33, &in, &out);
  
    return out.x.ax;
}
  
// Function to display the mouse
// pointer using graphics
void showMouse()
{
    in.x.ax = 1;
    int86(0X33, &in, &out);
}
  
// Function to hide the mouse
// pointer using graphics
void hideMouse()
{
    // Set AX=2 to hide mouse
    in.x.ax = 2;
    int86(0X33, &in, &out);
}
  
// Driver Code
void main()
{
    int status, i, gd = DETECT, gm;
  
    // Initialize graphics
    initgraph(&gd, &gm, "C:\\TURBOC3\\BGI");
  
    // Get the status of the mouse
    status = initMouse();
  
    // Check if mouse is available or not
    if (status == 0)
        cout << "Mouse support "
             << "not available.\n";
    else {
        for (i = 0; i <= 10; i++) {
  
            // Pause execution for .5 sec
            delay(500);
            showMouse();
            delay(500);
            hideMouse();
        }
    }
  
    getch();
  
    // Close the graphics
    closegraph();
}

Producción:

 

Determine la posición actual del mouse y el botón en el que se hizo clic :

En este programa, se imprime la ubicación actual del mouse, así como qué tecla del mouse se hace clic en qué ubicación utilizando las siguientes funciones:

  • initmouse(): se usa para inicializar el mouse.
  • showmouse(): muestra el cursor del mouse en la pantalla de salida.
  • getmouseposition(): obtiene la coordenada del mouse y qué tecla se presiona en el registro BX , CX , DX respectivamente.
    • Si BX = 1 tecla izquierda pulsada
    • Si BX = 2 Se hizo clic con la tecla derecha.
    • Si BX = 3 se presiona el botón central
    • CX = Ratón X Coordenada
    • DX = Coordenada Y del Ratón

A continuación se muestra el programa para el mismo:

C

// C program to determine the current
// mouse position and button clicked
#include <conio.h>
#include <dos.h>
#include <graphics.h>
#include <stdio.h>
union REGS in, out;
  
// Function to initialize the mouse
// pointer using graphics
int initMouse()
{
    in.x.ax = 0;
    int86(0X33, &in, &out);
  
    return out.x.ax;
}
  
// Function to display the mouse
// pointer using graphics
void showMouse()
{
    in.x.ax = 1;
    int86(0X33, &in, &out);
}
  
// Function to get the current clicked
// mouse position on the screen
void getMousePosition(int* click,
                      int* x, int* y)
{
    in.x.ax = 3;
    int86(0X33, &in, &out);
  
    // Get the coordinates
    *click = out.x.bx;
  
    // Update the x and y coordinates
    *x = out.x.cx;
    *y = out.x.dx;
}
  
// Driver Code
void main()
{
    int status, i, gd = DETECT, gm;
  
    // Initialize graphics
    initgraph(&gd, &gm, "C:\\TURBOC3\\BGI");
  
    // Get the status of the mouse
    status = initMouse();
  
    // Check if mouse is available or not
    if (status == 0)
        printf("Mouse support "
               "not available.\n");
    else {
  
        showMouse();
  
        // Get the current mouse position
        getMousePosition(&click, &x, &y);
  
        while (!kbhit()) {
  
            getMousePosition(&click, &x, &y);
            gotoxy(1, 1);
            printf("X = %d, Y = %d", x, y);
  
            if (click == 1)
                printf("\nLeft click at "
                       "position = %d, %d\t",
                       x, y);
            if (click == 2)
                printf("\nRight click at "
                       "position = %d, %d\t",
                       x, y);
        }
    }
  
    getch();
  
    // Close the graphics
    closegraph();
}

C++

// C program to determine the current
// mouse position and button clicked
#include <bits/stdc++.h>
#include <conio.h>
#include <dos.h>
#include <graphics.h>
#include <stdio.h>
using namespace std;
union REGS in, out;
  
// Function to initialize the mouse
// pointer using graphics
int initMouse()
{
    in.x.ax = 0;
    int86(0X33, &in, &out);
  
    return out.x.ax;
}
  
// Function to display the mouse
// pointer using graphics
void showMouse()
{
    in.x.ax = 1;
    int86(0X33, &in, &out);
}
  
// Function to get the current clicked
// mouse position on the screen
void getMousePosition(int* click,
                      int* x, int* y)
{
    in.x.ax = 3;
    int86(0X33, &in, &out);
  
    // Get the coordinates
    *click = out.x.bx;
  
    // Update the x and y coordinates
    *x = out.x.cx;
    *y = out.x.dx;
}
  
// Driver Code
void main()
{
    int status, i, gd = DETECT, gm;
  
    // Initialize graphics
    initgraph(&gd, &gm, "C:\\TURBOC3\\BGI");
  
    // Get the status of the mouse
    status = initMouse();
  
    // Check if mouse is available or not
    if (status == 0)
        printf("Mouse support "
               "not available.\n");
    else {
  
        showMouse();
  
        // Get the current mouse position
        getMousePosition(&click, &x, &y);
  
        while (!kbhit()) {
  
            getMousePosition(&click, &x, &y);
            gotoxy(1, 1);
            printf("X = %d, Y = %d", x, y);
  
            if (click == 1)
                cout << "\nLeft click at "
                     << "position = "
                     << x << ", " << y;
  
            if (click == 2)
                cout << "\nRight click at "
                     << "position = "
                     << x << ", " << y;
        }
    }
  
    getch();
  
    // Close the graphics
    closegraph();
}

Producción:

Display Mouse Pointer in graphics mode 2

Publicación traducida automáticamente

Artículo escrito por shubhamp338 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *