Titlul: Butoane - grafica
Scris de: Tudose Bogdan din Decembrie 03, 2007, 15:15:18
Ma chinui de ceva timp sa fac niste butoane in c++ si nu iese o chestie. Ele apar pe ecran si cand dau rollover cu mouseul peste ele isi schimba culoare, dar "tremura" incontinuu...probabil e de la do{....}while(); dar nu am gasit alta solutie. Uitati algoritmul #include<iostream.h> #include<conio.h> #include<graphics.h> #include<dos.h> #include<stdlib.h>
/*************************************************** ********* MOUSE COMMANDS *************************** ***************************************************/
int xpos1,ypos1,click; union REGS in,out;
int callmouse() { in.x.ax=1; int86(51,&in,&out); return 1; }
void mouseposi(int&xpos1,int&ypos1,int&click) { in.x.ax=3; int86(51,&in,&out); click=out.x.bx; xpos1=out.x.cx; ypos1=out.x.dx; }
void setposi(int&xpos1,int&ypos1) { in.x.ax=4; in.x.cx=xpos1; in.x.dx=ypos1; int86(51,&in,&out); }
int mousehide() { in.x.ax=2; int86(51,&in,&out); return 1; }
void main() { int gd=DETECT,gm,x,y; initgraph(&gd,&gm,"C:\\TC\\BGI"); x=getmaxx()/2; y=getmaxy()/2;
setfillstyle(1,15); bar3d(x-50,y-28,x+50,y-8,0,0); bar3d(x-50,y-2,x+50,y+18,0,0); bar3d(x-50,y+24,x+50,y+44,0,0); settextstyle(11,0,7); setcolor(0); outtextxy(x-30,y-20,"keyboard"); outtextxy(x-20,y+6,"mouse"); outtextxy(x-15,y+32,"exit");
callmouse(); do{
mouseposi(xpos1,ypos1,click); if(xpos1>x-50 && xpos1<x+50 && ypos1>y-28 && ypos1<y-8) { setfillstyle(1,15); bar3d(x-50,y-28,x+50,y-8,0,0); settextstyle(11,0,7); setcolor(0); outtextxy(x-30,y-20,"keyboard"); outtextxy(x-20,y+6,"mouse"); outtextxy(x-15,y+32,"exit"); } else { setfillstyle(1,0); bar3d(x-50,y-28,x+50,y-8,0,0); settextstyle(11,0,7); setcolor(15); outtextxy(x-30,y-20,"keyboard"); outtextxy(x-20,y+6,"mouse"); outtextxy(x-15,y+32,"exit"); }
/********************************************************* *********************************************************/
if(xpos1>x-50 && xpos1<x+50 && ypos1>y-2 && ypos1<y+18) { setfillstyle(1,15); bar3d(x-50,y-2,x+50,y+18,0,0); settextstyle(11,0,7); setcolor(0); outtextxy(x-30,y-20,"keyboard"); outtextxy(x-20,y+6,"mouse"); outtextxy(x-15,y+32,"exit"); } else { setfillstyle(1,0); bar3d(x-50,y-2,x+50,y+18,0,0); settextstyle(11,0,7); setcolor(15); outtextxy(x-30,y-20,"keyboard"); outtextxy(x-20,y+6,"mouse"); outtextxy(x-15,y+32,"exit"); }
/********************************************************** **********************************************************/
if(xpos1>x-50 && xpos1<x+50 && ypos1>y+24 && ypos1<y+44) { setfillstyle(1,15); bar3d(x-50,y+24,x+50,y+44,0,0); settextstyle(11,0,7); setcolor(0); outtextxy(x-30,y-20,"keyboard"); outtextxy(x-20,y+6,"mouse"); outtextxy(x-15,y+32,"exit"); } else { setfillstyle(1,0); bar3d(x-50,y+24,x+50,y+44,0,0); settextstyle(11,0,7); setcolor(15); outtextxy(x-30,y-20,"keyboard"); outtextxy(x-20,y+6,"mouse"); outtextxy(x-15,y+32,"exit"); } }while(click==0); } // editat --> foloseste [ code ] [/ code ] pentru a scrie cod pe forum
Titlul: Răspuns: Butoane - grafica
Scris de: Dan-Leonard Crestez din Decembrie 03, 2007, 15:27:25
Borland e mort. Lasa-l sa se odihneasca in pace.
Du-te si invata orice altceva, dar nu asta.
Titlul: Răspuns: Butoane - grafica
Scris de: Hulub Ionut-Adrian din Ianuarie 07, 2008, 22:38:59
cred ca trebuie sa folosesti o metoda numita threading.
Titlul: Răspuns: Butoane - grafica
Scris de: Burceanu Gabriel din Februarie 07, 2008, 13:35:07
E cam tarziu sa raspund ,dar eu cred ca trebuie sa folosesti o metoda numita double-buffering...
PS: lasa borland-ul , apuca-te de c++ cu opengl/directx , java , c#,python ... foloseste borland numai pentru probleme.
Titlul: Răspuns: Butoane - grafica
Scris de: Cristian Strat din Februarie 07, 2008, 20:22:39
Bine ca sunteti credinciosi...
Titlul: Răspuns: Butoane - grafica
Scris de: Vene Tian din Februarie 16, 2008, 20:43:41
eu personal recomand delphi pentru aplicaţii în windows...
Titlul: Răspuns: Butoane - grafica
Scris de: Tabara Mihai din Februarie 16, 2008, 22:36:35
sau C# :wink: ( Visual Studio 2005 Express Edition (http://msdn2.microsoft.com/en-us/express/aa975050.aspx) )
|