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

📄 menu.c

📁 一些关于C语言图形界面编程的实例程序。拿来和大家分享了
💻 C
字号:
#include   <process.h>   
  #include   <stdlib.h>   
  #include   <stdio.h>   
  #include   <dos.h>   
  #include   <conio.h>   
  #define   key_down   80   
  #define   key_up   72   
  #define   key_esc   1   
  #define   key_alt_f   33   
  #define   key_alt_x   45   
  #define   key_enter   28   
    
  int   get_key();   
  void   box(int   startx,int   stary,int   high,int   width);
  /*......定义窗口......*/
  main()   
  {   
  int   i,key,x,y,l;   
  char   *menu[]={"File","Edit","Run","Options","Help","Setup","Zoom","Menu"};   
  char   *red[]={"F","E","R","O","H","S","Z","M"};   
  char   *f[]={"Load   file",   "Save   file","Print   ","Modify   ",   
  "Quit   alt_x   "};   
  char   buf[16*10*2],buf1[16*2];   
  textbackground(1);/*......背景颜色......*/
  clrscr();   
  window(1,1,80,1); /*......文字底框......*/
  textbackground(15); /*......文字底框颜色......*/
  textcolor(0);     /*......文字颜色......*/
  clrscr();
  window(1,1,80,2); /*......文字层......*/
  for(i=0,   l=0;   i<8;i++)   
  {   
  x=wherex();   
  y=wherey();   
  cprintf("   %s",menu[i]);   
  l=strlen(menu[i]);   
  gotoxy(x,y);   
  textcolor(RED);   
  cprintf("   %s",red[i]);   
  x=x+l+4;   
  gotoxy(x,y);   
  textcolor(BLACK);   
  }   
  while(1)   
  {   
  key=0;   
  while   (bioskey(1)==0);   
  key=get_key();   
  if(key==key_alt_x)exit(0);   
  if(key==key_alt_f)   
  {   
  textbackground(0);   
  textcolor(15);   
  gotoxy(4,1);   
  cprintf("%s",menu[0]);   
  gettext(4,2,18,12,buf);   
  window(4,2,19,8);   
  textbackground(15);   
  textcolor(0);   
  clrscr();   
  window(4,2,19,9);   
  box(1,1,7,16);   
  for(i=2;   i<7;i++)   
  {   
  gotoxy(2,i);   
  cprintf("%s",f[i-2]);   
  }   
  gettext(2,2,18,3,buf1);   
  textbackground(0);   
  textcolor(15);   
  gotoxy(2,2);   
  cprintf("%s",f[0]);   
  y=2;   
  key=get_key();   
  while(key!=key_alt_x&&key!=key_enter&&key!=key_esc)   
  {   
  if(key==key_up||key==key_down)   
  {   
  puttext(2,y,18,y+1,buf1);   
  if(key==key_up)   
  y=y==2?   6:y-1;   
  if(key==key_down)   
  y=y==6?   2:y+1;   
  gettext(2,y,18,y+1,buf1);   
  textbackground(0);   
  textcolor(15);   
  gotoxy(2,y);   
  cprintf("%s",f[y-2]);   
  }   
  key=get_key();   
  }   
  if(key==key_alt_x)   
  exit(0);   
  if(key==key_enter)   
  {   
  switch(y-1)   
  {   
  case   1:   break;   
  case   2:   break;   
  case   3:   break;   
  case   4:   break;   
  case   5:   exit(0);   
  default:   break;   
  }   
  }   
  else   
  {window(1,1,80,2);   
  puttext(4,2,19,10,buf);   
  textbackground(15);   
  textcolor(0);   
  gotoxy(4,1);   
  cprintf("%s",menu[0]);   
  }   
  }   
  }   
  }   
  int   get_key()   
  {   
  union   REGS   rg;   
  rg.h.ah=0;   
  int86(0x16,&rg,&rg);   
  return   rg.h.ah;   
  }   
  void   box(int   startx,int   starty,int   high,int   width)   
  {   
  int   i;   
  gotoxy(startx,starty);   
  putch(0xda);   
  for   (i=startx+1;i<width;i++)   
  putch(0xc4);   
  putch(0xbf);   
  for(i=starty+1;i<high;i++)   
  {   
  gotoxy(startx,i);   
  putch(0xb3);   
  gotoxy(width,i);   
  putch(0xb3);   
  }   
  gotoxy(startx+1,width);   
  putch(0xc0);   
  for(i=startx+1;i<width;i++)   
  putch(0xc4);   
  putch(0xd9);   
  return;   
  }   

⌨️ 快捷键说明

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