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

📄 6-2.c

📁 书自带的源码可以看看
💻 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 + -