background image

LIGHTRED 12 

 

淡红 只用于字符

LIGHTMAGENTA 13 

 

淡洋红 只用于字符

YELLOW 14 

 

黄 只用于字符

WHITE 15 

 

白 只用于字符

BLINK 128 

 

闪烁 只用于字符

━━━━━━━━━━━━━━━━━━━━━━━━━━━

 

  上表中的符号常数与相应的数值等价,二者可以互换。例如设定 兰色背景可以使用
textbackground(1)

 

, 也可以使用 textbackground

(BLUE),两者没有任何区别,只不过后者比较容易记忆,一看就知道是兰色。
  Turbo C 另外还提供了一个函数,可以同时设置文本的字符和背景颜色,这个函数的

 

调用格式为: void textattr(int attr); 其中: attr 的值表示颜色形式编码的信息,每一位代表
的含义如下:

 

位 7 6 5 4 3 2 1 0
B b b b c c c c
↓ 

  ─────┘

┕━━━┙ ┖

 

 

闪烁 背景颜色 字符颜色
  字节低四位 cccc 设置字符颜色(0 到 15),4 ̄6 三位 bbb 设置背景颜色(0 到 7),第 7 位
B 设置字符是否闪烁。假如要设置一个兰底黄字,定义方法

 

如 下 : textattr(YELLOW+(BLUE<<4));   若 再 要 求 字 符 闪 烁 , 则 定 义 变 为 : 
textattr(128+YELLOW+(BLUE<<4);
注意:
 (1) 对于背景只有 0 到 7 共八种颜色,若取大于 7 小于 15

 

的数,则代表的颜色与减 7 后

的值对应的颜色相同。
 (2) 用 textbackground()和 textcolor() 函数设置了窗口的背景与字符颜色后,在没有用
clrscr()函数清除窗口之前,颜色不会改变,直到
使用了函数 clrscr(),整个窗口和随后输出到窗口中的文本字符才会变成新颜色。
 (3) 用 textattr()函数时背景颜色应左移 4 位,才能使 3 位背景颜色移到正确位置下面这
个程序使用了关于窗口大小的定义、颜色的设置等函
数,在一个屏幕上不同位置定义了 7 个窗口,其背景色分别使用了 7 种不同的颜色。
#include 
#include 
main()
{
int i;
textbackground(0); /* 

 

设置屏幕背景色 */

clrscr(); /* 

 

清除文本屏幕 */

for(i=1; i<8; i++)
{
window(10+i*5, 5+i, 30+i*5, 15+i); /* 

 

定义文本窗口 */

textbackground(i); /* 

 

定义窗口背景色 */

clrscr(); /* 

 

清除窗口 */

}
getch();
}