⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 menu-2.c

📁 是用c++写一个简单的手机界面的程序 五级菜单
💻 C
字号:
#include     "graphics.h "
#include     "stdio.h "         
#define     ALT_F         33         
#define     ALT_E         18
#define     ALT_X         45
#define     KEY_ESC       27
#define     KEY_LEFT      75
#define     KEY_RIGHT     77
#define     KEY_UP        72
#define     KEY_DOWN      80
#define     KEY_ENTER     13
#define     HIGH          15
#define     WIDTH         50
  
void     main(){         
   int     graphdriver=DETECT;
   int     graphmode,x,y,size;
   float     i,j,x1,x2,y1,y2,n=0,m=0;
   char     c,c1;
   char     s[2][10]={ "File ", "Edit "};
   char     s1[][10]={ "New ", "Load ", "Quit "};
   char     s2[][10]={ "Copy ", "Paste ", "Find "};
   int     mcount=2;
   void    *buff=NULL;
  
   detectgraph(     &graphdriver,     &graphmode);
print( "%d                             %d\n ",graphdriver,graphmode);         
registerbgidriver(EGAVGA_driver);     
initgraph(&graphdriver,&graphmode, " ");         
cleardevice();         
  
  
setviewport(0,0,300,250,1);         
setcolor(WHITE);         
rectangle(0,0,250,200);         
setfillstyle(1,BLUE);         
floodfill(1,1,WHITE);         
setfillstyle(1,LIGHTGRAY);         
bar(1,1,249,16);         
setcolor(YELLOW);         
settextstyle(0,0,1);         
for(i=0;i <mcount;i++)         
                              outtextxy(10+i*WIDTH,3,s[i]);         
for(;;){         
c=getch();         
switch(c){         
case     ALT_X:         
                              if(buff!=NULL)free(buff);         
                              closegraph();         
                              exit(0);         
  
case     ALT_F:         
                              if(buff!=NULL){         
                              putimage(0,0,buff,COPY_PUT);    ///put   charing
                              free(buff);         
                              }         
                              buff=imagebuff(10,1,100,100);         
                              submenu(100,3,1,s1);         
                              m=1;         
                              n=1;         
                              break;         
case     ALT_E:         
                              if(buff!=NULL){         
                              putimage(0,0,buff,COPY_PUT);         
                              free(buff);         
                              }         
                              buff=imagebuff(10+WIDTH,1,100,100);         
                              submenu(100,3,1,s2);         
                              m=1;         
                              n=2;         
                              break;         
case     KEY_ESC:         
                              if(buff!=NULL){         
                              putimage(0,0,buff,COPY_PUT);         
                              free(buff);         
                              }         
                              m=0;         
                              n=0;         
                              break;         
case     KEY_LEFT:         
case     KEY_RIGHT:         
                              if(0==n)break;         
                              putimage(0,0,buff,COPY_PUT);         
                              free(buff);         
                              if(1==n){         
                              buff=imagebuff(10+WIDTH,1,100,100);         
                              submenu(100,3,1,s2);         
                              m=1;         
                              n=2;         
                              }         
                              else{         
                              buff=imagebuff(10,1,100,100);         
                              submenu(100,3,1,s1);         
                              m=1;         
                              n=1;         
                              }         
                              break;         
case     KEY_UP:         
                              if(0==m     &brvbar;     &brvbar;m <=1)break;         
                              m--;         
                              if(1==n)         
                                          submenu(100,3,m,s1);         
                              else         
                                          submenu(100,3,m,s2);         
                              break;         
case     KEY_DOWN:         
                              if(0==m     &brvbar;     &brvbar;m> =3)break;         
                              m++;         
                              if(1==n)submenu(100,3,m,s1);         
                              else     submenu(100,3,m,s2);         
                              break;         
case     KEY_ENTER:         
                              if(0==m)break;         
                              putimage(0,0,buff,COPY_PUT);         
                              free(buff);         
                              buff=imagebuff(5,20,240,175);         
                              switch(m){         
                                          case     1:         
                                                              if(1==n)         
                                                                          outtextxy(50,50, "File--> New ");         
                                                              else         
                                                                          outtextxy(50,50, "Edit--> Copy ");         
                                                              break;         
                                      case     2:         
                                                              if(1==n)         
                                                                          outtextxy(50,50, "File--> Load ");         
                                                              else         
                                                                          outtextxy(50,50, "Edit--> Paste ");         
                                                              break;         
                                      case     3:         
                                                              if(1==n){         
                                                                          free(buff);         
                                                                          closegraph();         
                                                                          exit(0);}         
                                                              else         
                                                                          outtextxy(50,50, "Edit--> Find ");         
                                                              break;}         
  
                                                              m=0;         
                                                              n=0;         
                                                              break;         
                                                              }         
  
                              }         
                              closegraph();         
}         
  
  
void     submenu(int     w,int     n,int     m,char     s[][10]){         
int     i,mw,mh;         
mw=w;         
mh=n*HIGH+20;         
setfillstyle(1,LIGHTGRAY);         
bar(0,15,w,mh);         
rectangle(5,16,mw-5,mh-5);         
for(i=0;i <n;i++)         
                              outtextxy(8,i*15+18,s[i]);         
setfillstyle(1,DARKGRAY);         
bar(7,(m-1)*15+18,mw-7,m*15+17);         
outtextxy(8,(m-1)*15+20,s[m-1]);         
}         
  
  
void         *imagebuff(int     x1,int     x2,int     w,int     h){         
void         *buff;         
int     size;         
setviewport(x1,y1,x1+w,y1+h,1);         
size=imagesize(0,0,w,h);         
buff=malloc(size);         
getimage(0,0,w,h,buff);         
return     buff;         
}        

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -