Rechercher : dans
Par :

Manipulation de la souris en c ( turbo cpp )

Dernière réponse le 13 nov 2008 à 15:55:54 maverick1984, le 8 jan 2008 à 23:12:43 
 Signaler ce message aux modérateurs

Bonjour,


Je compte énormément sur votre aide. Le programme ci dessous ne renvoit aucune erreur et s'execute tres bien, cependant je ne comprends pas pourquoi la souris n'apparait pas pour pouvoir faire des selections dans les menus. J'ai écri aussi une fonction pour la souris qui marche tres bien ( mais à part, me demander de vous l'envoyer au besoin ) mais je ne peux pas l'intégrer dans mon programme. Quelqu'un pourrait t'il s'il vous plait m'aider en me montrant où exactement mettre le programme de la souris pour qu'elle apparraisse à l'éxécution de mon programme tel que je puisse faire des choix avec la souris ????
Je vous remercie d'avance pour votre compréhension.
Je développe avec turbo cpp.


















#include <graphics.h>
#include <ctype.h>
/*#include <stream.h>*/
#include <time.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <dos.h>
#include <string.h>
union REGS reg;
void initm()
{
reg.x.ax=0x00;
int86(0x33,®,®);
}
void mouse_on(void)
{
reg.x.ax=0x01;
int86(0x33,®,®);
}
void mouse_off(void)
{
reg.x.ax=0x02;
int86(0x33,®,®);
}
int Xm(void)
{
reg.x.ax=0x03;
int86(0x33,®,®);
return(reg.x.cx);
}
int Ym(void)
{
reg.x.ax=0x03;
int86(0x33,®,®);
return(reg.x.dx);
}
int in_rec(int a,int b,int c,int d)
{
if ( ( Xm()<c ) && ( Xm()>a ) && ( Ym()<d ) && ( Ym()>b ) )
return(1);
else
return(0);
}
int etat(void)
{
reg.x.ax=0x03;
int86(0x33,®,®);
return(reg.x.bx);
}
void BOUTON(int x,int y,int dx,int dy,int col)
{ int i;
setfillstyle(1,col);
bar(x,y,dx,dy);
setcolor(15);
line(x+1,y+1,dx-1,y+1);
line(x+1,y+1,x+1,dy-1);
setcolor(0);
line(x,dy,dx,dy);
line(dx,y,dx,dy);
setcolor(8);
line(x+1,dy-1,dx-1,dy-1);
line(dx-1,y+1,dx-1,dy-1);
}void boutton(int x,int y,int z,int w,int c1,int c2,int c3)
{
setfillstyle(SOLID_FILL, c3) ; bar(x,y,z,w) ;
setcolor(c1) ; line(x,y,z,y) ; line(x,y,x,w) ;
setcolor(c2) ; line(x,w,z,w) ; line(z,y,z,w) ;
}
void boutton2(int x,int y,int z,int w,int c1,int c2,int c3)
{
setfillstyle(INTERLEAVE_FILL, c3) ; bar(x,y,z,w) ;
setcolor(c1) ; line(x,y,z,y) ; line(x,y,x,w) ;
setcolor(c2) ; line(x,w,z,w) ; line(z,y,z,w) ;
}
void boutton3(int x,int y,int z,int w,int c1,int c2)
{
setcolor(c1) ; line(x,y,z,y) ; line(x,y,x,w) ;
setcolor(c2) ; line(x,w,z,w) ; line(z,y,z,w) ;
}
void btn1(int x,int y,int z,int w)
{
setfillstyle(SOLID_FILL, 7) ; bar(x+2,y+2,z-2,w-2) ;
setcolor(15) ; line(x+1,y+1,z-2,y+1) ; line(x+1,y+1,x+1,w-2) ;
setcolor(7) ; line(x,y,z-1,y) ; line(x,y,x,w-1) ;
setcolor(8) ; line(z-1,y+1,z-1,w-1) ; line(x+1,w-1,z-1,w-1) ;
setcolor(0) ; line(z,y,z,w) ; line(x,w,z,w) ;
}
void btn2(int x,int y,int z,int w)
{
setcolor(15);rectangle(x,y,z,w);
rectangle(x+1,y+1,z,w);
setcolor(8);rectangle(x,y,z-1,w-1);
}
void btn3(int x,int y,int z,int w)
{
setcolor(15) ; line(z,y,z,w) ; line(x,w,z,w) ;
setcolor(8) ; line(x,y,z-1,y) ; line(x,y,x,w-1) ;
}
void boutton4(int x,int y,int z,int w)
{
boutton3(x,y,z,w,8,15);
boutton(x+1,y+1,z-1,w-1,0,7,15);
}
void fleche(int y,int z,int w)
{
int abc;
abc=(y+w)/2;
mouse_off();
setcolor(0);
line(z-13,abc-2,z-7,abc-2);
line(z-12,abc-1,z-8,abc-1);
line(z-11,abc,z-9,abc);
line(z-10,abc+1,z-10,abc+1);
mouse_on();
}
void btn(int y,int z,int w)
{
mouse_off();
setfillstyle(1,7);
bar(z-15,y+4,z-4,w-4);
setcolor(8);
line(z-3,y+3,z-3,w-3);
line(z-16,w-3,z-3,w-3);
setcolor(15);
line(z-16,y+3,z-4,y+3);
line(z-16,y+3,z-16,w-4);
setcolor(7);
line(z-17,y+2,z-3,y+2);
line(z-17,y+2,z-17,w-3);
setcolor(0);
line(z-2,y+1,z-2,w-2);
line(z-17,w-2,z-2,w-2);
mouse_on();
}
void fermer(int x,int y,int z,int w)
{
setfillstyle(1,7);
bar(x+2,y+2,z,w);
setcolor(0);
rectangle(x+1,y+1,z-1,w-1);
setcolor(8);
rectangle(x,y,z-1,w-1);
setcolor(15);
rectangle(x+1,y+1,z,w);
setcolor(8);
rectangle(x,y,z,w);
setcolor(0);
line(x+5,y+4,z-5,w-5);
line(x+5,y+5,z-5,w-4);
line(x+5,w-5,z-5,y+4);
line(x+5,w-4,z-5,y+5);
}
void boutton5(int x,int y,int z,int w)
{
mouse_off();
setfillstyle(1,15);
bar(x,y,z,w);
setcolor(8);
line(x,y,z-1,y);
line(x,y,x,w-1);
setcolor(15);
line(x,w,z,w);
line(z,y,z,w);
setcolor(7);
line(x+1,w-1,z-1,w-1);
line(z-1,y+1,z-1,w-1);
setcolor(0);
line(x+1,y+1,z-2,y+1);
line(x+1,y+1,x+1,w-2);
btn(y,z,w);
fleche(y,z,w);
mouse_on();
}
void Couleurs()
{
setpalette(6,9);
setpalette(10,36);
setpalette(11,38);
setpalette(14,45);
setpalette(2,32);
setpalette(9,8);
}
void listederoul(int x,int y,int z,int w,int c1)
{
int i;
mouse_off();
for(i=y;i<w;i++)
{
setcolor(0);
rectangle(x,y,z,i);
setfillstyle(1,c1);
bar(x+1,y+1,z-1,i-1);
if(i<=y+9)
delay(7);
if(i>=y+10 && i<y+18)
delay(5);
else
delay(2);
}
settextstyle(SMALL_FONT,0,4);
setcolor(9);
outtextxy(x+5,y+2,"FACTORISATION");
outtextxy(x+5,y+15,"METHODE DE NEWTON");
mouse_on();
}
void ChoixListeDeroul(int x,int y,int z,int w,int k)
{
mouse_off();
setfillstyle(1,15);
bar(x+1,y+1,z-1,w-1);
settextstyle(SMALL_FONT,0,4);
setcolor(9);
outtextxy(x+5,y+2,"FACTORISATION");
outtextxy(x+5,y+15,"METHODE DE NEWTON");
switch(k)
{
case 1 : setcolor(15);setfillstyle(1,4);
bar(x+3,y+2,z-3,y+14); outtextxy(x+5,y+2,"FACTORISATION");
break;
case 2 : setcolor(15);setfillstyle(1,4);
bar(x+3,y+15,z-3,y+27); outtextxy(x+5,y+15,"METHODE DE NEWTON");
break;
}
mouse_on();
}
char *Resultat(int k)
{
char *p;
p = (char *)malloc(sizeof(p)) ;
mouse_off();
boutton5(230,170,435,192);
mouse_on();
settextstyle(SMALL_FONT,0,4);
setfillstyle(1,15);setcolor(9);
switch (k)
{
case 1 :bar(233,173,416,189);
strcpy(p,"FACTORISATION");
setcolor(9) ;outtextxy(235,174,"FACTORISATION");
break;
case 2 :bar(233,173,416,189);
strcpy(p,"METHODE DE NEWTON");
setcolor(9) ; outtextxy(235,174,"METHODE DE NEWTON");
break;
}
return p;
}
void Effacer()
{
boutton(80,160,170,371,0,15,8);
setcolor(15) ;
outtextxy(100,182,"METHODES") ;
boutton(98,194,148,194,15,15,15) ;
outtextxy(95,233,"PARAMETRES") ;
boutton(92,245,155,245,15,15,15) ;
outtextxy(97,284,"RESULTATS") ;
boutton(94,296,152,296,15,15,15) ;
outtextxy(102,336,"EFFACER") ;
boutton(98,348,147,348,15,15,15) ;
boutton(81,385,489,405,15,0,7);
}
void Interface()
{
setpalette(4,29);
setpalette(9,8) ;
settextstyle(SMALL_FONT,0,4);
setfillstyle(10,1);
bar(0,0,645,480);
boutton(60,80,580,420,15,15,7);
boutton(61,80,579,419,15,15,7);
boutton(63,83,577,103,8,8,8);
boutton(80,110,318,130,0,15,7);
boutton(81,111,159,129,15,0,7);
boutton(160,111,238,129,15,0,7);
boutton(239,111,317,129,15,0,7);
setcolor(9) ;
outtextxy(95,115,"A PROPOS") ;
outtextxy(175,115,"METHODES") ;
outtextxy(258,115,"QUITTER") ;
fermer(556,85,571,101);
setcolor(15) ; outtextxy(70,88,"ANALYSE NUMERIQUE ... TP2") ;
Effacer() ;
boutton4(200,160,560,370) ;
boutton(80,384,560,406,0,15,7);
boutton(81,385,489,405,15,0,7);
outtextxy(300,390,"Commandes : ") ;
}
void Date(int x , int y)
{
struct date D ;
getdate(&D);
char CH[6] ;
setpalette(6,5);
setcolor(6);
sprintf(CH,"%d",D.da_day) ; outtextxy(x,y,CH) ;
sprintf(CH,"%d",D.da_mon) ; outtextxy(x+15,y,CH) ;
sprintf(CH,"%d",D.da_year) ; outtextxy(x+30,y,CH) ;
}
void Time(int x , int y)
{
struct time t;
static char s[10];
static sec=0;
gettime(&t);
if ( sec != t.ti_sec )
{
setcolor(7);
boutton(490,385,559,405,15,0,7);
outtextxy(x,y,s);
sprintf(s," %2d:%02d:%02d",t.ti_hour, t.ti_min, t.ti_sec);
setcolor(1);
boutton(490,385,559,405,15,0,7);
outtextxy(x,y,s);
sec=t.ti_sec;
}
}
void ChoixMenu(int k)
{
setpalette(5,32) ;
switch(k)
{
case 1 : Effacer() ; boutton(81,161,169,212,15,0,7);
outtextxy(100,182,"METHODES") ; setcolor(5) ;
outtextxy(93,390,"Le Choix Du M,thodes") ;
break ;
case 2 : Effacer() ; boutton(81,213,169,266,15,0,7);
outtextxy(95,233,"PARAMETRES") ; setcolor(5) ;
outtextxy(93,390,"La Saisie Des ParamStres") ;
break ;
case 3 : Effacer() ; boutton(81,267,169,319,15,0,7);
outtextxy(100,284,"RESULTATS") ; setcolor(5) ;
outtextxy(93,390,"La Solution Du Systeme Ou De L'Equation") ;
break ;
case 4 : Effacer() ; boutton(81,320,169,370,15,0,7);
outtextxy(100,336,"EFFACER") ; setcolor(5) ;
outtextxy(93,390,"Effacer") ;
break ;
}
}
void MenuMethode()
{
boutton(160,132,310,204,15,0,7);
boutton(165,135,185,199,8,8,8);
setcolor(7);
settextstyle(SMALL_FONT,1,4);
outtextxy(169,144,"METHODES");
settextstyle(SMALL_FONT,0,4);
setcolor(15);
outtextxy(196,142,"Factorisation");
outtextxy(196,162,"M,thode De GAUSS");
outtextxy(196,182,"M,thode De NEWTON");
}
void EffaceMenuMethode()
{
boutton(190,139,300,198,7,7,7) ;
settextstyle(SMALL_FONT,0,4);
setcolor(15);
outtextxy(196,142,"Factorisation");
outtextxy(196,162,"M,thode De GAUSS");
outtextxy(196,182,"M,thode De NEWTON");
}
void ChoixMethode(int k)
{
switch(k)
{
case 1 : EffaceMenuMethode() ; boutton(191,139,300,157,8,8,8) ;
setcolor(15) ; outtextxy(196,142,"Factorisation");
break ;
case 2 : EffaceMenuMethode() ;boutton(191,159,300,177,8,8,8) ;
setcolor(15) ; outtextxy(196,162,"M,thode De GAUSS");
break ;
case 3 : EffaceMenuMethode() ;boutton(191,179,300,197,8,8,8) ;
setcolor(15) ; outtextxy(196,182,"M,thode De NEWTON");
break ;
}
}
void Efface2()
{
boutton(70,131,570,372,7,7,7);
boutton4(200,160,560,370) ;
Effacer() ;
}
void Titre(char Ch[])
{
int i ;
settextstyle(TRIPLEX_FONT,0,3) ;
for ( i=0 ; i<5 ; i++ )
{
setcolor(0) ;
outtextxy(380-i,120+i,Ch) ;
}
setcolor(15) ;
outtextxy(380-i,120+i,Ch) ;
settextstyle(SMALL_FONT,0,4) ;
}
int Methode()
{
int k=0 , L=0 ;
char P ;
MenuMethode() ;
while (k!=5)
{
Date(490,165) ;
while ( Time(495,390) , !kbhit()) ;
P=getch();
switch(P)
{
case 80 : k++; if(k>3) k=1; ChoixMethode(k);
break;
case 72 : k--; if(k<1) k=3; ChoixMethode(k);
break ;
case 13 : switch(k)
{
case 1 : L = 1 ; k = 5 ; Efface2();
Titre("FACTORISATION") ;break ;
case 2 : L = 2 ; k = 5 ; Efface2() ;
Titre("M . GAUSS") ; break ;
case 3 : L = 3 ; k = 5 ; Efface2() ;
Titre("M . NEWTON") ; break ;
}
break ;
case 27 :
case 75 :
case 77 : k = 5 ; break ;
}
}
return L ;
}
void EffaceMenu_P()
{
boutton(81,111,159,129,15,0,7);
boutton(160,111,238,129,15,0,7);
boutton(239,111,317,129,15,0,7);
setcolor(9) ;
outtextxy(95,115,"A PROPOS") ;
outtextxy(175,115,"METHODES") ;
outtextxy(258,115,"QUITTER") ;
}
void ChoixMenu_P(int k)
{
switch(k)
{
case 1 : EffaceMenu_P() ; boutton(81,111,159,129,0,15,7);
outtextxy(95,115,"A PROPOS") ;
break ;
case 2 : EffaceMenu_P() ; boutton(160,111,238,129,0,15,7);
outtextxy(175,115,"METHODES") ;
break ;
case 3 : EffaceMenu_P() ; boutton(239,111,317,129,0,15,7);
outtextxy(258,115,"QUITTER") ;
break ;
}
}
int Menu_P()
{
int k=0 , L ;
char P ;
while (k!=5)
{
Date(490,165) ;
while ( Time(495,390) , !kbhit() ) ;
P=getch();
switch(P)
{
case 77 : k++; if(k>3) k=1; ChoixMenu_P(k);
break;
case 75 : k--; if(k<1) k=3; ChoixMenu_P(k);
break ;
case 13 : switch(k)
{
case 2 : L = Methode() ; k=5 ; break ;
case 3 : k=5 ; break ;
}
break ;
case 27 : k = 5 ;
break ;
}
}
return L ;
}
void main()
{

int gdriver= DETECT, gmode;

initgraph(&gdriver, &gmode,"c:\\cpp\\bgi");

int k=0 , L ;
char P ;
initm() ;
Interface() ;
L = Menu_P() ;
if ( L == 1 || L == 2 || L == 3 )
{
while (k!=5)
{
Date(490,165) ;
while ( Time(495,390) , !kbhit() ) ;
P=getch();
switch(P)
{
case 80 : k++; if(k>4) k=1; ChoixMenu(k);
break;
case 72 : k--; if(k<1) k=4; ChoixMenu(k);
break ;
case 27 : k = 5 ;
break ;
}
}
}
closegraph() ;
getch();
}

Configuration: Windows XP
Internet Explorer 6.0

Meilleures réponses pour « manipulation de la souris en c ( turbo cpp ) » dans :
Télécharger Mouseless Browsing VoirCette extension Firefox permet de naviguer dans les pages web sans utiliser la souris ! C'est utile si vous avez un ordinateur portable sans souris (et que vous n'aimez pas le dispositif de pointage), pour les personnes handicapées ou même pour...
Les chaînes de caractères en C++ VoirQu'est-ce qu'une chaîne de caractères ? Une chaîne de caractères (appelée string en anglais) est une suite de caractères, c'est-à-dire un ensemble de symboles faisant partie du jeu de caractères, défini par le code ASCII. En langage C++, une...

1

dandypunk, le 9 jan 2008 à 03:43:51

Indente, commente après je pourrai éventuellement résoudreton problème.

En comentant tu verra peut êtte que ton pb est résolu

Répondre à dandypunk

2

 enokby, le 13 nov 2008 à 15:55:54

Heu mec tu crois vraiment kon peut co;prende kelke chos a ta merde????

Répondre à enokby
Collection CommentÇaMarche.net