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

📄 file.c

📁 小程序
💻 C
字号:
#include<graphics.h>
#include<stdio.h>
#include<stdlib.h>
#include<bios.h>
#include<conio.h>
#define UP 0x4800
#define DOWN 0x5000
#define LEFT 0x4b00
#define RIGHT 0x4d00
#define ENTER 0x1c0d
#define ESC 0x011b
#define TRUE 1
#define FALSE 0
typedef struct{
               int menuID;
               char MenuName[8];
               int itemCount;
               char itemName[4][8];
              }menu;                                                    /*菜单的数据结构*/
void *saveImage;                                                        /*保存菜单覆盖区域*/
int mHeight;
int mWidth;                                                            /*定义表示窗口高,宽的变量*/
int mutex=0;
menu MainMenu[]={{0,"Menu0",4,{"Open","New","Save","Exit"}},
		 {1,"Menu1",2,{"Copy","Paste"}},
		 {2,"Menu2",2,{"Find","Instead"} }
		};    

void showItems(int NewID) ;
void init();
void initm();
void process(int OldID,int NewID);
void process3(int OldID,int NewID,int m);
void process1(int d);
                                          /*定义菜单结构*/



void main()
{
 int OldID,NewID,head,tail,quit;
 int OldID1,NewID1,head1,tail1;
 head=0;
 tail=2;
 OldID=0;
 NewID=0;
 OldID1=0;
 NewID1=0;
 head1=0;
 quit=0;
 init();
 initm();
 while(!quit)
 {
  
   switch(bioskey(0))
   {

     case  LEFT:
                if(mutex==0)
                 {
                  if(NewID==head)
                  {
                    OldID=NewID;
                    NewID=tail;
                  }
                  else
                  {
                    OldID=NewID;
                    NewID--;
                  }
                  process(OldID,NewID);
                 }
                 break;
     case  RIGHT:
                if(mutex==0)
                 {
                  if(NewID==tail)
                  {
                    OldID=NewID;
                    NewID=head;
                  }
                  else
                  {
                    OldID=NewID;
                    NewID++;
                  }
                  process(OldID,NewID);
                 }
                 break;
     case ENTER:
                if(mutex==0)
                {
                    showItems(NewID);
                    mutex=1;
                    tail1=MainMenu[NewID].itemCount-1;
                }
                else
                    process1(NewID);
                break;
      case  ESC:
                if(mutex!=0)
                {
                  putimage(mWidth*NewID,20,saveImage,0);
                  setcolor(RED);
                  outtextxy(mWidth*NewID+12,0,(MainMenu[NewID].MenuName));
		  mutex=0;
                }     
                else
                  quit=TRUE;
                break;

      case DOWN:
               if(mutex==1)
               {
                  if(NewID1==tail1)
                  {                   
		     OldID1=NewID1;
                     NewID1=head1;
                  }
                  else
                  {
                    OldID1=NewID1;
                    NewID1++;
                  }
                 process3(OldID1,NewID1,NewID);
               }
               break;
      case  UP:
             if(mutex==1)
                 {
                  if(NewID1==head1)
                  {
                    OldID1=NewID1;
                    NewID1=tail1;
                  }
                  else
                  {
                    OldID1=NewID1;
                    NewID1--;
                  }
                  process3(OldID1,NewID1,NewID);
                 }
                 break;
      default:
             break;
   }
 }
 getch();
 closegraph();
}
                 

⌨️ 快捷键说明

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