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

📄 welcome.c

📁 纯用C写的图形化的职工管理系统 虽然只实现了基本功能 但很有代表性
💻 C
字号:
/*有关初始画面的定义*/
static unsigned int PAL[256][3];
static int  Step=0;

/* 设置VGA 13H模式 */
void setmode()
{
	_AX=0x13;
	geninterrupt(0x10);
}

/* 设置文本模式 */
void closemode()
{
	_AX=0x3;
	geninterrupt(0x10);
}

/* 设置调色板 */
void setpal(int Color,unsigned char r,unsigned char g,unsigned char  b)
{
	outportb(0x3c8,Color);
	outportb(0x3c9,r);
	outportb(0x3c9,g);
	outportb(0x3c9,b);
}


/* 调色板渐入 */
void StepIn()
{
	int i;
	for (i=0;i<256;i++) 
		setpal(i,PAL[i][0]*Step/64,PAL[i][1]*Step/64,PAL[i][2]*Step/64);
	Step++;
}

/* 调色板渐出 */
void StepOut()
{
	int i;
	for (i=0;i<256;i++) 
		setpal(i,PAL[i][0]*Step/64,PAL[i][1]*Step/64,PAL[i][2]*Step/64);
	Step--;
}

/*显示欢迎画面*/
void logo()
{
	FILE *bmp;
	int  i,r,g,b,x,y;
	void far* Video;

	Video = farmalloc(64000);
	if (Video==NULL)
	{
		printf("Not enough Memory\n");
		return;
	}

	setmode();
	bmp=fopen("logo.bmp","rb");
	fseek(bmp,54,SEEK_SET);
	for (i=0;i<256;i++)
	{
		PAL[i][2]=fgetc(bmp)>>2;
		PAL[i][1]=fgetc(bmp)>>2;
		PAL[i][0]=fgetc(bmp)>>2;
		fgetc(bmp);
		setpal(i,0,0,0);
	}

	for (y=0;y<200;y++)
		for (x=0;x<320;x++)
			pokeb(0xa000,y*320+x,fgetc(bmp));

	fclose(bmp);
	while(!kbhit()&&Step<64)
	{
		StepIn();
		delay(1000);
	}
	Step=64;
	StepIn();
	getch();
	while(!kbhit()&&Step>0)
	{
		StepOut();
		delay(1000);
	}

	Step=0;
	StepOut();
	farfree(Video);
/*	closemode();*/
}

⌨️ 快捷键说明

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