最新公告
  • 欢迎您光临欧资源网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • 一个设置文本属性的函数,原型如下顺便提一下文本属性

    这里引入一个设置文本属性的函数,原型如下

    BOOL SetConsoleTextAttribute(   // 设置WriteConsole等函数的字符属性
    HANDLE hConsoleOutput,          // 句柄
    WORD wAttributes                // 文本属性
    );

    顺便说一句c语言控制台背景色,text 属性实际上是一个颜色属性。有两种类型:背景色和前景色(即字符的颜色)。每种仅提供三基色(红、绿、蓝)和增强色(灰色c语言控制台背景色,可与其他颜色组合使用,以提亮色彩,后面会提到)。最后还有一个反色(不知道这个怎么用,很奇怪的东西)。示例程序如下:

    #include 
    #include 
    #include 
    #include 
    /*
    基本文本属性
    FOREGROUND_BLUE 蓝色
    FOREGROUND_GREEN 绿色
    FOREGROUND_RED 红色
    FOREGROUND_INTENSITY 加强
    BACKGROUND_BLUE 蓝色背景
    BACKGROUND_GREEN 绿色背景
    BACKGROUND_RED 红色背景
    BACKGROUND_INTENSITY 背景色加强
    COMMON_LVB_REVERSE_VIDEO 反色
    */
    const WORD FORE_BLUE   = FOREGROUND_BLUE;           //蓝色文本属性
    const WORD FORE_GREEN  = FOREGROUND_GREEN;          //绿色文本属性
    const WORD FORE_RED    = FOREGROUND_RED;            //红色文本属性
    const WORD FORE_PURPLE = FORE_BLUE | FORE_RED;      //紫色文本属性
    const WORD FORE_CYAN   = FORE_BLUE | FORE_GREEN;    //青色文本属性
    const WORD FORE_YELLOW = FORE_RED | FORE_GREEN;     //黄色文本属性
    const WORD FORE_GRAY   = FOREGROUND_INTENSITY;      //灰色文本属性
    const WORD BACK_BLUE   = BACKGROUND_BLUE;           //蓝色背景属性
    const WORD BACK_GREEN  = BACKGROUND_GREEN;          //绿色背景属性
    const WORD BACK_RED    = BACKGROUND_RED;            //绿色背景属性
    const WORD BACK_PURPLE = BACK_BLUE | BACK_RED;      //紫色背景属性
    const WORD BACK_CYAN   = BACK_BLUE | BACK_GREEN;    //青色背景属性
    const WORD BACK_YELLOW = BACK_RED | BACK_GREEN;     //黄色背景属性
    const WORD BACK_GRAY   = BACKGROUND_INTENSITY;      //灰色背景属性
    int main()
    {
        HANDLE handle_out = GetStdHandle(STD_OUTPUT_HANDLE);    //获得标准输出设备句柄
        CONSOLE_SCREEN_BUFFER_INFO csbi;                        //定义窗口缓冲区信息结构体
        GetConsoleScreenBufferInfo(handle_out, &csbi);          //获得窗口缓冲区信息
        SetConsoleTextAttribute(handle_out, FORE_BLUE);
        printf("蓝色字符n");
        SetConsoleTextAttribute(handle_out, FORE_RED);
        printf("红色字符n");
        SetConsoleTextAttribute(handle_out, FORE_GREEN);
        printf("绿色字符n");
        SetConsoleTextAttribute(handle_out, FORE_PURPLE);
        printf("紫色字符n");
        SetConsoleTextAttribute(handle_out, FORE_CYAN);
        printf("青色字符n");
        SetConsoleTextAttribute(handle_out, FORE_YELLOW);
        printf("黄色字符n");
        SetConsoleTextAttribute(handle_out, FORE_GRAY);
        printf("灰色字符n");
        SetConsoleTextAttribute(handle_out, FORE_GREEN | FORE_BLUE | FORE_RED);
        printf("白色字符n");
        SetConsoleTextAttribute(handle_out, BACK_BLUE);
        printf("蓝色背景n");
        SetConsoleTextAttribute(handle_out, BACK_RED);
        printf("红色背景n");
        SetConsoleTextAttribute(handle_out, BACK_GREEN);
        printf("绿色背景n");
        SetConsoleTextAttribute(handle_out, BACK_PURPLE);
        printf("紫色背景n");
        SetConsoleTextAttribute(handle_out, BACK_CYAN);
        printf("青色背景n");
        SetConsoleTextAttribute(handle_out, BACK_YELLOW);
        printf("黄色背景n");
        SetConsoleTextAttribute(handle_out, BACK_GRAY);
        printf("灰色背景n");
        SetConsoleTextAttribute(handle_out, BACK_BLUE | BACK_RED | BACK_GREEN);
        printf("白色背景n");
        SetConsoleTextAttribute(handle_out, BACK_GREEN | FORE_RED); //示例:绿色背景红色字符
        printf("绿色背景与红色字符的混合n");
        SetConsoleTextAttribute(handle_out, FOREGROUND_INTENSITY | FORE_RED);   //示例:亮红色字符
        printf("亮色的生成,与加强色融合n");
        return 0;
    }

    c语言控制台背景色_pid控制算法的c语言实现(绝对的好东西)_c语言在测量和控制中的应用

    上面的示例程序最好用C++编译,因为有些C语言编译器或者IDE不支持上面定义常量的方式。从这个例子中需要理解的是,三基色是使用按位 OR | 混合的。 C语言位操作中的操作符,背景颜色和字符颜色也是用这个操作符定义的。另外,任何一种颜色与对应增强色(灰色,有前景和背景两种,需要对应)的融合都会成为对应颜色的高亮版本,例如红色字符和前景增强的融合颜色会组合成鲜红色。

    至于反色,你可以试试。当我将文本属性设置为反色时,输入的字符不显示,但下标仍在移动。我猜反色会将白色字符变成黑色字符。与黑色背景相同,因此不显示。至于反色等组合和其他颜色组合,还需要大家一起探索,,,

    站内大部分资源收集于网络,若侵犯了您的合法权益,请联系我们删除!
    欧资源网 » 一个设置文本属性的函数,原型如下顺便提一下文本属性

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    欧资源网
    一个高级程序员模板开发平台

    发表评论