📄 菜单程序.txt
字号:
#include <dos.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.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 xx,int yy,int hight,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[]={"New ",
"Open ",
"Print ",
"Zoom ",
"Quit ",};
char buf[16*10*2],buf1[16*2];
textbackground(1);
clrscr();
textmode(C80);
window(1,1,80,1);
textbackground(15);
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,19,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,12,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 xx,int yy,int hight,int width)
{int i;
gotoxy(xx,yy);
putch(0xda);
for(i=xx+1;i<width;i++)
putch(0xc4);
putch(0xbf);
for(i=yy+1;i<hight;i++)
{gotoxy(xx,i);putch(0xb3);
gotoxy(width,i);putch(0xb3);
}
gotoxy(xx+1,width);
putch(0xc0);
for(i=xx+1;i<width;i++) putch(0xc4);
putch(0xd9);
return;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -