zoukankan      html  css  js  c++  java
  • C语言-->为你的窗体改变字体颜色 | 一种动画效果 | 增加bgm

    C语言-->为你的窗体改变字体颜色 | 一种动画效果 | 增加bgm

    本篇博客下代码均在code blocks完成。

    一、改变窗体背景和字体颜色

    每次运行代码看到黑漆漆的窗体是不是感觉有点单调?其实窗体的背景和字体都是可修改的。

    窗体默认背景色及字体色设置system("color XX");

    • 在这里我们把窗体默认的黑底白字修改成了白底黑字,用的就是这行简单的代码system("color F0");,其中F表示背景色为黑色,0表示字体色为白色。
    • 除了F0我们还可以搭配更多种设置:
        0=黑色                  
      1=蓝色              
      2=绿色                   
      3=湖蓝色                  
      4=红色              
      5=紫色            
      6=黄色              
      7=白色
      8=灰色
      9=淡蓝色
      A=淡绿色
      B=淡浅绿色
      C=淡红色
      D=淡紫色
      E=淡黄色
      F=亮白色
    

    改变输出或者输入字体和背景的颜色

    • 调用SetConsoleTextAttribute函数实现
    • 此设置维持到下一次改变或者程序结束
    • 格式范例:(黑底白字)SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY |   FOREGROUND_RED | FOREGROUND_GREEN | FOREGROUND_BLUE);
      • 这里逗号前部分是固定的语法,之后是对背景、前景颜色的设置。
      • 可以设为FOREGROUND_红/绿/蓝或者BACKGROUND_红/绿/蓝,还可以设置增强效果FOREGROUND_INTENSITYBACKGROUND_INTENSITY
      • 逗号后半部分内容均用|符号隔开
      • 更多颜色搭配参考控制台输出字体颜色
    • 示例代码
    #include <stdio.h>
    #include <stdlib.h>
    #include <windows.h>
    void main()
    {
    	system("mode con:cols=100 lines=20000");
    	system("color F9");
    	printf("hello!!
    ");
    	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_INTENSITY);
    	printf("12");
    	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE | FOREGROUND_BLUE | BACKGROUND_INTENSITY |FOREGROUND_INTENSITY);
    	printf("345");
    	SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), BACKGROUND_RED | BACKGROUND_GREEN | BACKGROUND_BLUE | BACKGROUND_INTENSITY);
    	printf("54321");
        printf("
    ");
    }
    
    • 效果如下

    二、制作一种动画效果

    • 效果:字逐个打出的动画
    #include "stdio.h"
    #include <windows.h>
    #include <stdlib.h> 
    void main() 
    { 
     int i;
     char s[80]="我是一串会跳出的字符串!"; 
     for(i=0;i<80&&s[i]!='';)
     {
      if(s[i]<0)
      {
       printf("%c%c",s[i],s[i+1]); //汉字
       i=i+2;
      }
      else
      {
       printf("%c",s[i]); //普通字符
       i=i+1;
      }
      Sleep(500);
     }
     printf("
    ");
     system("pause");
    }
    
    • 代码中一个汉字占两个字符,所以我们需要巧妙地将他识别并输出

    三、增加bgm

    • 首先要保证你打开的代码是一个完整的工程,不会的同学开.cbp文件就对了。
    • 写一个最简单的代码
    #include<stdio.h>
    #include<stdlib.h>
    #include <windows.h>
    #include <mmsystem.h>//导入声音头文件
    #pragma comment(lib,"winmm.lib")//导入声音头文件库
    
    int main()
    {
        mciSendString("open 1.mp3",NULL,0,NULL);//.MP3文件要放在和代码的同一路径下
        mciSendString("play 1.mp3",NULL,0,NULL);
        while(1);
        return(0);
    }
    

    接下来我们还需要在code blocks里加入winmm.lib库文件

    • 选中project-->build options

    • 点击Linker settings,在Link libraries处点击add,输入vinmm点击确定即可。

    • 运行程序,就可以听到好听的bgm啦~

    参考文献

  • 相关阅读:
    10.23
    四则运算(1)
    10.12
    10.22
    今日总结
    Java自学
    Java自学
    Java自学
    Java自学
    Java自学
  • 原文地址:https://www.cnblogs.com/wangyaojia/p/11057530.html
Copyright © 2011-2022 走看看