在DOS环境下添加背景音乐、改变背景颜色、冻结屏幕和调用系统时间

如下例,

例1:

# include <Windows.h>
# include <stdio.h>
# pragma comment (lib, "Winmm.lib")//导入Winmm.lib库

int main(void)
{
	system("color 6f");
	PlaySound("000.wav", NULL, SND_FILENAME | SND_ASYNC|SND_LOOP); //第七行
	system("pause");

	return 0;
}
在上面的例子中,system(“pause”)的功能是冻结屏幕(即不会让一些程序的运行结果一闪而逝);

system(“color 6f”)是改变背景颜色和前景文字,具体情况如下图:

在DOS环境下添加背景音乐、改变背景颜色、冻结屏幕和调用系统时间_第1张图片

另外,在第七行,写成 PlaySound("000.wav", NULL, SND_FILENAME); 也可以,只是这样音乐播放完后就停止了,如向上例中所写,可以使音乐循环播放,但要注意,音乐需要wav格式,音乐需要放在Debug文件中。

如果想播放多个歌曲,直接把上面程序的第8行代码继续向下复制即可;而调用系统时间,下面也给出了,不过,下面是把背景音乐和调用当前时间写成了两个函数,如下所示

例2:

# include <Windows.h>
# include <time.h>
# include <stdio.h>
# pragma comment (lib, "Winmm.lib")//导入Winmm.lib库

void dqsj();
void bjyy();

int main(void)
{
	system("color 2f");
	dqsj();
	bjyy();
	printf("\n\n播放完音乐后\n\n");
	dqsj();
	
	system("pause");			
	return 0;
}

void dqsj()
{
	char * wday[] = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
	time_t t;
	struct tm *p;
	t = time(NULL);
	p = gmtime(&t);
	printf("现在时间是:"); 
	printf("%d年%2d月%2d日", (1900+p->tm_year), (1+p->tm_mon), p->tm_mday);
	printf(" %s ", wday[p->tm_wday]);
	printf("%02d:%02d:%02d\n", (8+p->tm_hour), p->tm_min, p->tm_sec);	
}

void bjyy()
{
	PlaySound("青鸟飞鱼 - 此生不换.wav", NULL, SND_FILENAME);
	PlaySound("王筝-我们都是好孩子.wav", NULL, SND_FILENAME);
	
	PlaySound("愿得一人心.wav", NULL, SND_FILENAME);
	PlaySound("诛仙剑.wav", NULL, SND_FILENAME);
	
	PlaySound("萧人凤-仙剑问情.wav", NULL, SND_FILENAME);//  | SND_ASYNC|SND_LOOP
	PlaySound("仙剑奇侠传-千年缘.wav", NULL, SND_FILENAME);
	
	PlaySound("任贤齐-诛仙恋.wav", NULL, SND_FILENAME);
	PlaySound("林俊杰-爱不会绝迹.wav", NULL, SND_FILENAME);
	
	PlaySound("梁静茹-勇气.wav", NULL, SND_FILENAME);
	PlaySound("秦时明月-谁主沉浮.wav", NULL, SND_FILENAME);
}

这儿有音乐格式转化器——点击打开链接


【所有代码均在windows系统下VC++6.0下运行通过】

(如有错误,敬请指正)

你可能感兴趣的:(dos,博客)