LA SOURIS [BORLAND TURBO C++ 3.0]

Signaler
Messages postés
231
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
22 avril 2007
-
Messages postés
6
Date d'inscription
lundi 17 août 2009
Statut
Membre
Dernière intervention
10 février 2011
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/9589-la-souris-borland-turbo-c-3-0

Messages postés
6
Date d'inscription
lundi 17 août 2009
Statut
Membre
Dernière intervention
10 février 2011

merci mes amis
Messages postés
14
Date d'inscription
vendredi 15 avril 2005
Statut
Membre
Dernière intervention
30 juillet 2010

c'est c'est justement ce que je cherche depuis un bon bout de temps et je crois qu'avec ça ma source paraitra bientot.merci pour la source henock

www.e-monsite.com/henockmermoz
Messages postés
68
Date d'inscription
vendredi 3 mai 2002
Statut
Membre
Dernière intervention
6 juillet 2007

Voici une solution: pour Placer la souris aux coordonées désirées, faire apparaitre, faire disparaitre, capter l'interruption, contrôler si la souris est dans le cadre( limities) désirés et ou au besoin faire les contrôles necessaires, si l'utilsateur a fait un clic avec le bouton droit ou gauche.
Pour les utilisations voir dans les progs au:
http://www.cppfrance.com/listeauteur2.aspx?ID=8416

void movetoxy(int x, int y)
{
union REGS regs;
regs.h.ah = 2; /* set cursor position */
regs.h.dh = y;
regs.h.dl = x;
regs.h.bh = 0; /* video page 0 */
int86(VIDEO, ®s, ®s);
}

void initialisersouris(int *ok,int *nbouton)
{
union REGS rin,rout;
rin.x.ax=0;
int86(0x33,&rin,&rout);
*ok=rout.x.ax;
*nbouton=rout.x.bx;
return;
}


void sourison()
{
union REGS rin,rout;
rin.x.ax=1;
int86(0x33,&rin,&rout);
return;
}

void sourisoff()
{
union REGS rin,rout;
rin.x.ax=0;
int86(0x33,&rin,&rout);
return;
}

void getsourisxy(int *xs,int *ys,int *bg,int *bd)
{
union REGS rin,rout;
rin.x.ax=3;
int86(0x33,&rin,&rout);
*xs=rout.x.cx;
*ys=rout.x.dx;
*bg=(rout.x.bx & 1)==1;
*bd=(rout.x.bx & 2)==2;
return;
}

void setsouris(int x,int y)
{
union REGS rin,rout;
rin.x.ax=4;
rin.x.cx=x;
rin.x.dx=y;
int86(0x33,&rin,&rout);
return;
}

int souris_inte(int a,int b,int c,int d)
{
int xs,ys,bd,bg;
getsourisxy(&xs,&ys,&bg,&bd);
if((a<=xs)&&(b<=ys)&&(c>=xs)&&(d>=ys))
return 1;
else
return 0;
}

int souris_ext(int a,int b,int c,int d)
{
int xs,ys,bd,bg;
getsourisxy(&xs,&ys,&bg,&bd);
if((xs<=a)||(ys<=b)||(xs>=c)||(ys>=d))
return 1;
else
return 0;
}
Messages postés
231
Date d'inscription
vendredi 21 mars 2003
Statut
Membre
Dernière intervention
22 avril 2007

Pour ceux qui ont le meme probleme, voici la solution :

http://www.cppfrance.com/code.aspx?ID=17856

Vous y toruverez une librairie avec quelque fonction en assembleur qui permet de resoudre le probléme de "limites" que j'ai rencontré pour programmer un casse-briques. Voila !

++
Afficher les 6 commentaires