Graphique c: affecter une action aux boutons

firas_tn Messages postés 128 Date d'inscription mardi 11 janvier 2005 Statut Membre Dernière intervention 19 avril 2007 - 22 mars 2006 à 13:12
Spoolega Messages postés 65 Date d'inscription dimanche 8 janvier 2006 Statut Membre Dernière intervention 27 février 2011 - 22 mars 2006 à 16:18
salut a tous
j'utilise tc 3.0 sous windows avec la bibliotheque graphics.h seulement, j'ai crée des bouton et je veux savoir comment affecter à un bouton par exemple une action : exécution d'une instruction ou une fonction..
Merci d'avance

4 réponses

Spoolega Messages postés 65 Date d'inscription dimanche 8 janvier 2006 Statut Membre Dernière intervention 27 février 2011 1
22 mars 2006 à 16:01
Bonjour
Content de voir que je ne suis pas le seul a utiliser TC3
J'ai retrouvé une de mes sources qui gére des boutons (c'est en fait un menu, 3 boutons) avec les flèches directionnelles haut et bas pour le choix et validation par la touche entrée. Selon l'appuis d'un bouton c'est envoyé/géré par une fonction.
Il faut juste faire attention a cette ligne initgraph(&gdriver, &gmode, "c:\\tc3\\bgi");
dans la fonction init, au chemin c:\tc3\bgi

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


void init(void); /* initialisation graphique */
void sousmenu(int ); /* gestion de sous menu */


struct menu{
int x, y;
int xx, yy;
char nom[10];
};



void main(void)
{
int touche, y=120, val=1, bloc;


init(); /* appel du mode graphique */


setcolor(10);
outtextxy(310, 107, "Nouveau"); /* val = 0 */
outtextxy(310, 127, "Quitter"); /* val = 1 */
outtextxy(310, 147, "Score"); /* val = 2 */


do {
rectangle(300, y, 380, y+20);
do {
touche = getch(); /* recupere le code ASCII de la touche */
if((touche==72 && val==0) || (touche==80 && val==2)) bloc=0;
else bloc=1;


if(touche==13) sousmenu(val);
} while(bloc==0); /* verrou de fin de menu */


switch(touche)
{
case 72 : setcolor(BLACK); /* fleche haut */
rectangle(300, y, 380, y+20);
setcolor(10);
y = y - 20;
val--;
break;


case 80 : setcolor(BLACK); /* fleche bas */
rectangle(300, y, 380, y+20);
setcolor(10);
y = y + 20;
val++;
break;
}
} while(touche!=27); /* si on appuie sur "Echape" */


closegraph();
}



/* fonctionnement de traitement pour les sous menus */
void sousmenu(int val)
{
struct menu menu_score;


switch(val)
{
case 1 : exit(0); /* QUITTER */


case 0 : /* NOUVEAU JEU */
outtextxy(20, 50, "Nouveau jeu");
break;


case 2 : /* SCORE */
outtextxy(20, 70, "Score");
break;


default : return;
}
return;
}

void init(void)
{
int gdriver = DETECT, gmode, errorcode;
initgraph(&gdriver, &gmode, "c:\\tc3\\bgi");
errorcode = graphresult();
if (errorcode != grOk) /* an error occurred */
{
printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1); /* return with error code */
}
}
0
Spoolega Messages postés 65 Date d'inscription dimanche 8 janvier 2006 Statut Membre Dernière intervention 27 février 2011 1
22 mars 2006 à 16:05
Dans la structure, pas mal de choses ne servent pas xx, yy et nom[10], je l'utilisais pour autre chose, dsl
0
firas_tn Messages postés 128 Date d'inscription mardi 11 janvier 2005 Statut Membre Dernière intervention 19 avril 2007
22 mars 2006 à 16:13
Merci pour votre réponse
ça serait gentil de votre part si vous pouvez me trouver une source avec l'utilisation de la souris au lieu du clavier, c'est a dire suivant le bouton cliqué ou non cliqué
Merci encore une fois
0
Spoolega Messages postés 65 Date d'inscription dimanche 8 janvier 2006 Statut Membre Dernière intervention 27 février 2011 1
22 mars 2006 à 16:18
ok > http://www.cppfrance.com/forum.v2.aspx?ID=691110
tout frais d'une semaine, même pas XD
0
Rejoignez-nous