My photo
Bangalore, Karnataka, India
Extending one hand to help someone has more value rather than joining two hands for prayer

Archives

program to show menu with the cursor

Tuesday, September 1, 2009

#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<graphics.h>
#include<dos.h>
#include<process.h>
int color;
void arrow(int xx,int yy,int color)
{   setcolor(color);
    int a[]={xx-50,yy+7,xx-40,yy+7,xx-20,yy+20,xx-40,yy+33,xx-50,yy+33,xx-50,yy+26,xx-40,yy+26,xx-27,yy+20,xx-40,yy+14,xx-50,yy+14,xx-50,yy+7};
    drawpoly(11,a);
    setfillstyle(1,color);
    floodfill(xx-40,yy+10,color);
}

void msetfocus(int l,int r,int t,int b,char s[])
{    arrow(l,t,8);
     setcolor(15);
     rectangle(l,t,r,b);
     setfillstyle(1,15);
     floodfill(l+2,t+2,15);
     setcolor(6);
     outtextxy(l+5,t,s);
}

void mlostfocus(int l,int r,int t,int b,char s[])
{    arrow(l,t,7);
     setcolor(7);
     rectangle(l,t,r,b);
     setfillstyle(1,7);
     floodfill(l+2,t+2,7);
     setcolor(6);
     outtextxy(l+5,t,s);
}

void menu(char x[][50],int msize,int hl)
{
     int lf,tp,rh,bt;
     lf=175;
     rh=lf+225;
     tp=150;
     bt=tp+40;
     setcolor(5);
     settextstyle(1,HORIZ_DIR,4);
     outtextxy(140,60,x[0]);

     settextstyle(1,HORIZ_DIR,2);
     for(int i=1;i<=msize;i++)
     {   if(i==hl)
     msetfocus(lf,rh,tp,bt,x[i]);
     else
     mlostfocus(lf,rh,tp,bt,x[i]);
     tp+=40;
     bt+=40;
     }
}

void getkey(int &j,int &k,int &l)
{    REGS n,m;
     m.h.ah=0X00;
     int86(22,&m,&n);
     j=n.h.ah;
     k=n.h.al;
     m.h.ah=0X02;
     int86(22,&m,&n);
     l=n.h.al;
}

void main()
{         int d,mm,e,a,b,c,k;
      d=DETECT;
      initgraph(&d,&mm,"c:/tc");
      e=graphresult();

if(e!=0)
{
     cout<<"Graphics not inialised";
     getch();
     return;
}
    REGS n,m;
    n.x.ax=0;
    int86(0x33,&n,&m);
    k=m.x.ax;
    if(k==0)
    return;
    while(!kbhit())
    {  n.x.ax=1;
       int86(0x33,&n,&m);
       n.x.ax=3;
       int86(0x33,&n,&m);
       a=m.x.cx;               /* lf=175;
                rh=lf+225;
                tp=150;
                bt=tp+40;  */
       b=m.x.dx;
       c=m.x.bx;

    }
settextstyle(1,HORIZ_DIR,2);
setbkcolor(7);
int ac,sc,st,z=1,t=1;
char mstr[][50]={"STUDEMT'S DATABASE","INSERT NEW RECORD ","SHOW ALL RECORD","SEARCH A RECORD","DELETE A RECORD ","MODIFY A RECORD"};
while(1)
{
    menu(mstr,5,z);
    getkey(sc,ac,st);
       /*sound(7);
    delay(100);
    nosound();   */
    if(sc==72 && z>=1)
    {
          if(z==1)
          {    z=5;
           continue;
          }
          z--;
    }
    else if(sc==80&& z<=5)
    {
          z++;
          if(z==6)
          z=1;
    }
    else if(sc==1)
    break;
    else if(sc==28)
    { exit(0);
    }
}
getch();
closegraph();
}

0 comments: