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();
}