La souris [borland turbo c++ 3.0]

Contenu du snippet

Le programme indique la position du curseur et l'état du clic gauche et droit de la souris.

Certains codes montrent comment gérer la souris avec SetCursorPos, mais les anciens compilateurs DOS ne possèdent pas la librairie windows.h nécessaire à l'utilisation de SetCursorPos.

Pour y remédier, l'emploi du langage assembleur est obligatoire (enfin, je n'ai trouvé que cela). Il n'est pas difficile à utiliser sous Borland Turbo C++ 3.0. Il faut mettre une valeur dans le registre AX (0 à 3) et générer une interruption (ici, l'interruption n°33h).

Source / Exemple :


#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <dos.h>

void main()
 {
	int x, y, clic;
	clrscr();
	_AX=0; geninterrupt(0x33);	// initialise le driver de la souris
	_AX=1; geninterrupt(0x33);	// affiche le curseur de la souris
//	_AX=2; geninterrupt(0x33);	// efface le curseur de la souris
	_setcursortype(_NOCURSOR);	// on retire le "curseur du clavier"

	do
	 {
		_AX=3; geninterrupt(0x33);	// recherche des infos de la souris
		clic=_BX;			// le clic se trouve dans _BX
		x=_CX;			// l'abscisse dans le registre _CX
		y=_DX;			// la coordonn‚e dans _DX
		gotoxy(1, 1);
		printf("Position : %d - %d   ", x, y);	// on affiche la position

		// si on ne clique pas
		if (clic == 0)
		 {
			gotoxy (1, 2);
			printf ("Clic Gauche : OFF");
			gotoxy (1, 3);
			printf ("Clic Droit : OFF ");
		 }

		// clic gauche
		if (clic & 1)
		 {
			gotoxy (1, 2);
			printf ("Clic Gauche : ON ");
		 }

		// clic droit
		if (clic & 2)
		 {
			gotoxy (1, 3);
			printf ("Clic Droit : ON  ");
		 }

	 }
	while (!kbhit());	// tant qu'on appuie sur aucune touche, on boucle
 }

Conclusion :


BeLZeL (belzel@free.fr)

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.