📄 6-2.c
字号:
#include"stdio.h"
#include"graphics.h"
#define ESC 27
#define Enter 13
#define LatticeAmount1 9 /*----------9格---------*/
#define LatticeAmount2 16 /*----------16格--------*/
#define WIN_X 150 /*--------整体窗口左上角坐标-------*/
#define WIN_Y 20
#define WIN_LEN LatticeAmount1*LatticeAmount2*2 /*--------主显示窗口边长----------*/
#define FILE_L 60 /*-------------菜单宽度---------*/
#define FILE_H 20 /*-------------菜单高度---------*/
#define Dlg_LEN 50
#define Button_L 11 /*按钮宽度单位,为按钮中心点到按钮上边框(或下边框)的距离*/
#define BK_COLOR DARKGRAY /*-------------背景颜色---------*/
#define WIN_COLOR WHITE /*-----------窗口边框颜色-------*/
/*---------------显示字符串-----------------------*/
Print(x,y,str)
char str[10];
{
setcolor(WIN_COLOR);
settextstyle(0,0,1);
outtextxy(x,y,str);
}
/*---------------绘制背景初始框------------------------*/
void BGround()
{
int i;
setfillstyle(1,BK_COLOR);
bar3d(WIN_X,WIN_Y,WIN_X+WIN_LEN,WIN_Y+FILE_H+WIN_LEN,1,3);
bar3d(WIN_X,WIN_Y+FILE_H+WIN_LEN,
WIN_X+WIN_LEN,
WIN_Y+FILE_H+WIN_LEN+Dlg_LEN,
1,
3);
setfillstyle(1,1);
bar3d(WIN_X,WIN_Y,WIN_X+WIN_LEN,WIN_Y+FILE_H,0,3);
line(WIN_X+FILE_L,WIN_Y,WIN_X+FILE_L,WIN_Y+FILE_H);
Print(WIN_X+13,WIN_Y+8,"FILE LIZHI DESIGN ");
outtextxy(WIN_X+60,WIN_Y+FILE_H+WIN_LEN+20,"Fifteen-Moving");
outtextxy(WIN_X+130,WIN_Y+FILE_H+WIN_LEN+35,"Edtion: 1.0");
settextstyle(1,0,0);
for(i=0;i<75;i++)
{
Clear_BG();
outtextxy(WIN_X+i,WIN_Y+FILE_H+50,"Welcome!");
delay(5000);
}
settextstyle(0,0,0);
delay(3000);
outtextxy(WIN_X+20,WIN_Y+FILE_H+100,"Operate handbook:");
delay(3000);
outtextxy(WIN_X+30,WIN_Y+FILE_H+120,"* \"ESC\" to Exit.");
delay(3000);
outtextxy(WIN_X+30,WIN_Y+FILE_H+140,"* \"Ctrl+F\" to Show the Menu");
delay(3000);
outtextxy(WIN_X+30,WIN_Y+FILE_H+160,"* \"Up\" or \"Down\" to Choose Menu.");
delay(3000);
outtextxy(WIN_X+30,WIN_Y+FILE_H+180,"* \"Enter\" to Start");
delay(3000);
outtextxy(WIN_X+30,WIN_Y+FILE_H+200,"* \"Ctrl+H\" for help");
}
/*---------清除窗口中间的显示区域--------------------*/
Clear_BG()
{
setfillstyle(1,BK_COLOR); /*设置填充颜色为背景色*/
bar(WIN_X+1,
WIN_Y+FILE_H+1,
WIN_X+WIN_LEN-1,
WIN_Y+FILE_H+WIN_LEN-1);
}
/*注意清除时其范围恰好比边框内缩一个单位,这样不至于将边框也用背景色覆盖掉*/
/*---------清除底端对话框---------------------*/
Clear_Dlg()
{
setfillstyle(1,BK_COLOR);
bar(WIN_X+1,WIN_Y+FILE_H+WIN_LEN+1,WIN_X+WIN_LEN-1,
WIN_Y+FILE_H+WIN_LEN+Dlg_LEN-1);
}
/*-----------绘制按钮-----------------------*/
Button(color1,color2, str, len)
char str[10];
{
int x,y;
int i;
char ch[10];
x=WIN_X+WIN_LEN/2;
y=WIN_Y+FILE_H+WIN_LEN+Dlg_LEN/2;
setcolor(color1);
for(i=0;i<3;i++)
{
line(x-len*2-i,y-len-i,x+len*2+i,y-len-i);
line(x+len*2+i,y-len-i,x+len*2+i,y+len-i);
}
setcolor(color2);
for(i=0;i<2;i++)
{
line(x-len*2+i,y-len,x-len*2+i,y+len);
line(x-len*2,y+len-i,x+len*2,y+len-i);
}
setcolor(15);
outtextxy(x-17,y-3,str);
}
/*------------用户按键退出效果函数------*/
int EXIT()
{
int flag=0; /*定义一个函数返回标志,并设其初始值为0*/
char ch;
Clear_Dlg(); /*清除对话框*/
Button(WHITE,CYAN,"EXIT",Button_L); /*在对话框中显示 "EXIT"按钮*/
while(1)
{
if(kbhit()) /*等待用户按键*/
{
ch=getch();
if(ch==ESC) /*若按ESC键,则表示取消退出请求*/
{
Clear_Dlg(); /*此时清除对话框,且函数返回标志值为仍为初始值0*/
break;
}
else
if(ch==Enter) /*若按Enter键,则表示用户确定退出*/
{
Clear_Dlg();
/*以下为实现单击按钮的动画效果*/
Button(15,3,"EXIT",Button_L+2);
delay(10000);
Clear_Dlg();
Button(15,3,"EXIT",Button_L);
delay(30000);
flag=1; /*设返回的标志值为1*/
Clear_Dlg();
break;
}
} /*--------End if(kbhit())----------*/
} /*--------------End while()-------------*/
return flag; /*-----------函数返回flag值------------*/
}
main()
{
int gdriver,gmode;
char ch;
detectgraph(&gdriver,&gmode);
initgraph(&gdriver,&gmode,"c:\tc\tc");
setbkcolor(0);
clearviewport();
BGround();
while(1)
{
kbhit();
ch=getch();
if(ch==ESC) /*如果用户按ESC键*/
{ /*则调用EXIT()函数,如果函数返回值为1,则表示用户确定退出*/
if(EXIT())
break; /*跳出循环,结束程序*/
}
}
/*-------在窗口中央显示"Bye Bye !"两秒钟-----------*/
settextstyle(1,0,0);
outtextxy(WIN_X+80,WIN_Y+FILE_H+WIN_LEN/2-30,"Bye Bye !");
sleep(2);
closegraph();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -