En este artículo, discutiremos algunos casos de uso de la programación del mouse :
Restringir el puntero del mouse :
El puntero del mouse se puede restringir en un rectángulo particular. La idea es crear una función llamada restrictmouse() que tome cuatro parámetros que contengan la coordenada X y la coordenada Y. El primer punto menciona la parte superior del rectángulo y el segundo punto menciona la parte inferior del rectángulo. A continuación se muestran las funciones utilizadas para el mismo:
- initmouse(): se usa para inicializar el mouse.
- showmouse(): muestra el puntero del mouse en la pantalla de salida.
- restrictmouse(): se usa para establecer el límite horizontal y vertical del puntero del mouse configurando los siguientes parámetros. AX = 7 para horizontal y AX = 8 para vertical.
A continuación se muestra el programa para el mismo:
C
// C program to restrict the mouse // pointer #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 restrict the mouse // pointers void restrictMouse(int x1, int y1, int x2, int y2) { // Set Horizontal limit in.x.ax = 7; in.x.cx = x1; in.x.dx = x2; int86(0X33, &in, &out); // Set Vertical limit in.x.ax = 8; in.x.cx = y1; in.x.dx = y2; 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 { showMouse(); // Draw rectangle for displaying // the boundary rectangle(100, 70, 400, 200); restrictMouse(100, 70, 400, 200); } getch(); // Close the graphics closegraph(); return 0; }
C++
// C++ program to restrict the mouse // pointer #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 restrict the mouse // pointers void restrictMouse(int x1, int y1, int x2, int y2) { // Set Horizontal limit in.x.ax = 7; in.x.cx = x1; in.x.dx = x2; int86(0X33, &in, &out); // Set Vertical limit in.x.ax = 8; in.x.cx = y1; in.x.dx = y2; 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 { showMouse(); // Draw rectangle for displaying // the boundary rectangle(100, 70, 400, 200); restrictMouse(100, 70, 400, 200); } getch(); // Close the graphics closegraph(); return 0; }
Producción:
Dibujo a mano alzada :
El siguiente programa hace uso de algunas funciones secundarias, que ya se discutieron anteriormente, y muestra cómo se pueden usar para escribir programas útiles como el dibujo a mano alzada. 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.
- hidemouse(): se usa para ocultar el mouse mientras se dibuja.
- getmouseposition(): obtiene la ubicación actual del puntero y dibuja la línea en consecuencia.
A continuación se muestra el programa para el mismo:
C
// C program to perform Free Hand Drawing // using mouse programming #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 hide the mouse // pointer using graphics void hideMouse() { // Set AX=2 to hide mouse in.x.ax = 2; int86(0X33, &in, &out); } // Function to get the exact position // of the mouse getMousePosition(int* x, int* y, int* click) { in.x.ax = 3; // Get the coordinates int86(0x33, &in, &out); // Update the coordinates *x = out.x.cx; *y = out.x.dx; *click = out.x.bx & 1; } // Driver Code void main() { int status, i, gd = DETECT, gm,x1,y1,x2,y2; // Initialize graphics initgraph(&gd, &gm, "C:\\TURBOC3\\BGI"); initMouse(); // kbhit If a key has been pressed // then it returns a non zero value // otherwise returns zero(false) while (!kbhit()) { // Show the mouse pointer showMouse(); // Get the mouse position getMousePosition(&x1, &y1, &click); x2 = x1; y2 = y1; // When mouse is clicked while (click == 1) { hideMouse(); // Draw line line(x1, y1, x2, y2); x1 = x2; y1 = y2; // Get the mouse position getMousePosition(&x2, &y2, &click); } } getch(); // Close the graphics closegraph(); return 0; }
C++
// C++ program to perform Free Hand // Drawing using mouse programming #include <bits/stdc++.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 hide the mouse // pointer using graphics void hideMouse() { // Set AX=2 to hide mouse in.x.ax = 2; int86(0X33, &in, &out); } // Function to get the exact position // of the mouse getMousePosition(int* x, int* y, int* click) { in.x.ax = 3; // Get the coordinates int86(0x33, &in, &out); // Update the coordinates *x = out.x.cx; *y = out.x.dx; *click = out.x.bx & 1; } // Driver Code void main() { int status, i, gd = DETECT, gm; // Initialize graphics initgraph(&gd, &gm, "C:\\TURBOC3\\BGI"); initMouse(); // kbhit If a key has been pressed // then it returns a non zero value // otherwise returns zero(false) while (!kbhit()) { // Show the mouse pointer showMouse(); // Get the mouse position getMousePosition(&x1, &y1, &click); x2 = x1; y2 = y1; // When mouse is clicked while (click == 1) { hideMouse(); // Draw line line(x1, y1, x2, y2); x1 = x2; y1 = y2; // Get the mouse position getMousePosition(&x2, &y2, &click); } } getch(); // Close the graphics closegraph(); return 0; }
Producción:
Publicación traducida automáticamente
Artículo escrito por shubhamp338 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA