je suis en trai de faire un menu deroulant sur tubo c++ et j'aimerai recevoir votre aide pour le terminer.
voici le code sur le quel je travail
#include <graphics.h>
#include <stdio.h>
#include <conio.h>
#include<dos.h>
/******************************/
/*fontion de bars horizontale*/
/*****************************/
void bar_ver(int x,int y,int x1,int c1,int c2,int y1,int cool,int e,int g,int h,int f)
{
setfillstyle(1,cool);
// rectangle(l,m,n,o);
setfillstyle(1,7);
bar(x,y,x1,y1);
for(e=20,g=90;e<=260,g<=330;e+=120,g+=120)
{
setcolor(c1);
line(e,f,g,f);
line(e,f,e,h);
setcolor(c2);
line(e,h,g,h);
line(g,f,g,h);
}
outtextxy(24,15,"File");
outtextxy(144,15,"Edit");
outtextxy(264,15,"Search");
setbkcolor(0);
}
/**********************************************/
/*fonction qui gre la bar verticale de file */
/**********************************************/
void rec1(int e,int g,int s,int t,int r)
{
// setfillstyle(1,colo);
rectangle(e,s,g,t);
for(r=44;r<=112;r+=17)
{
line(e,r,g,r);
}
outtextxy(23,30,"New");
outtextxy(23,47,"Open");
outtextxy(23,64,"Save");
outtextxy(23,81,"Save as");
outtextxy(23,97,"Exit");
}
/**********************************************/
/*fonction qui gre la bar verticale d'Edit */
/**********************************************/
void rec2(int e,int g,int a,int b,int r)
{
// setfillstyle(1,w);
rectangle(e,a,g,b);
for(r=44;r<=95;r+=17)
{
line(e,r,g,r);
}
outtextxy(147,30,"Copy");
outtextxy(147,47,"Cut");
outtextxy(147,64,"Paste");
outtextxy(147,81,"Clear");
}
/**********************************************/
/*fonction qui gre la bar verticale de Search */
/**********************************************/
void rec3(int e,int g,int v,int r,int w)
{
rectangle(e,w,g,v);
for(r=44;r<=78;r+=17)
{ setcolor(4);
line(e,r,g,r);
}
outtextxy(265,30,"Find");
outtextxy(265,47,"Replace");
outtextxy(265,64,"Search");
}
/**********************************************/
/*fonction qui controle les touches horizotale*/
/**********************************************/
void touche1(char *c)
{
do{
*c=getch(); // on vrifie que la touche lue au clavier
}
while ( (*c!=77)&&(*c!=13)&&(*c!=75));
}
/**********************************************/
/*fonction qui controle les touches verticales*/
/**********************************************/
void touche2( char *q)
{
do
{
*q=getch();
}
while((*q!=72)&&(*q!=80));
}
/********************************************/
/*fonction qui controle l'afichge de file */
/******************************************/
void affiche1( int e, int g,int a,int b,int r,int w,int v,int s,int t)
{
switch(e)
{
case 20 :
setfillstyle(1,2);
rec1( e, g, s, t, r);
break;
case 140:
setfillstyle(1,2);
rec2(e, g, a, b, r );
break;
case 260:
setfillstyle(1,2);
rec3( e, g, v, r, w);
break;
default :
setfillstyle(1,9);
break;
}
}
/***********************/
/* fonction principale */
/***********************/
int main(void)
{
clrscr();
int cool, x,x1,w,y,y1,c1,c2,s,v,t,e,g,f,h,a,b,r;
int gdriver = DETECT, gmode; //gdriver correspond
une carte graphique existante sur la machine courante
char *c,*q;
initgraph(&gdriver, &gmode, "");// initialisation du mode graphique
e=20; g=90; x=1;y=1;x1=700;y1=200;
f=12;h=25;s=a=w=27;t=112;
b=95;v=78;cool=15;
c1=15; c2= 0;
do{
touche1(c);
if (*c!=13)
{
bar_ver( x, y,x1, c1, c2, y1,cool,e,g,h,f);
if((e==20)||(e==140)||(e==260))
{
do
{
touche2(q);
affiche1(e,g, a, b, r, w, v,s, t);
switch(e)
{
case 20: if(r<=112)
{r=r+17;}
else
r=44;
break;
case 140: if(r<=95)
{r=r+17;}
else
r=44;
break;
case 260: if(r<=78)
{r=r+17;}
else
r=44;
break;
default: outtextxy(getmaxx()/2,getmaxy()/2,"Pas de donns ");
break;
}
}
while((*c==75)||(*c==74));
}
if((x<=260)&&(g<330)){
e=g+50;
g=e+70;
}
else{
e=20;
g=90;
}
}
}
while (*c!= 13);
closegraph();
return 0;
}