📄 scn.htm
字号:
<HTML><HEAD> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312"> <META NAME="Author" CONTENT="wdg"> <META NAME="GENERATOR" CONTENT="Mozilla/4.03 [en] (Win95; I) [Netscape]"> <TITLE>scn</TITLE></HEAD><BODY><P> 字符屏幕函数<P> Turbo C2.0的字符屏幕函数主要包括文本窗口大小的设定、窗口颜色的设置、<BR>窗口文本的清除和输入输出等函数。<P> 1.文本窗口的定义<BR> Turbo C2.0默认定义的文本窗口为整个屏幕, 共有80列(或40列)25行的文本<BR>单元, 每个单元包括一个字符和一个属性, 字符即ASCII 码字符, 属性规定该字<BR>符的颜色和强度。<BR> Turbo C2.0可以定义屏幕上的一个矩形域作为窗口, 使用window()函数定义。<BR>窗口定义之后, 用有关窗口的输入输出函数就可以只在此窗口内进行操作而不超<BR>出窗口的边界。<BR> window()函数的调用格式为:<BR> void window(int left, int top, int right,int bottom);<BR> 该函数的原型在conio.h 中 (关于文本窗口的所有函数其头文件均为conio.h,<BR>后面不再说明)。 函数中形式参数(int left, int top)是窗口左上角的坐标,<BR>(int right, int bottom)是窗口的右下角坐标, 其中(left, top)和(right,<BR>bottom) 是相对于整个屏幕而言的。 Turbo C 2.0规定整个屏幕的左上角坐标为<BR>(1, 1), 右下角坐标为(80, 25)。并规定沿水平方向为 X轴, 方向朝右; 沿垂直<BR>方向为 Y轴, 方向朝下。若window()函数中的坐标超过了屏幕坐标的界限, 则窗<BR>口的定义就失去了意义, 也就是说定义将不起作用, 但程序编译链接时并不出错。<BR> 另外, 一个屏幕可以定义多个窗口, 但现行窗口只能有一个(因为DOS为单任<BR>务操作系统), 当需要用另一窗口时, 可将定义该窗口的window() 函数再调用一<BR>次, 此时该窗口便成为现行窗口了。<BR> 如要定义一个窗口左上角在屏幕(20, 5)处, 大小为30列15行的窗口可写成:<BR> window(20, 5, 50, 25);<P> 2. 文本窗口颜色的设置<BR> 文本窗口颜色的设置包括背景颜色的设置和字符颜色的设置,使用的函数及<BR>其调用格式为:<BR> 设置背景颜色: void textbackground(int color);<BR> 设置字符颜色: void textcolor(int color);<BR> 有关颜色的定义见表1。<BR> 表1. 有关颜色的定义<BR>━━━━━━━━━━━━━━━━━━━━━━━━━━━<BR> 符号常数 数值 含义 字符或背景<BR>───────────────────────────<BR> BLACK 0 黑 两者均可<BR> BLUE 1 兰 两者均可<BR> GREEN 2 绿 两者均可<BR> CYAN 3 青 两者均可<BR> RED 4 红 两者均可<BR> MAGENTA 5 洋红 两者均可<BR> BROWN 6 棕 两者均可<BR> LIGHTGRAY 7 淡灰 两者均可<BR> DARKGRAY 8 深灰 只用于字符<BR> LIGHTBLUE 9 淡兰 只用于字符<BR> LIGHTGREEN 10 淡绿 只用于字符<BR> LIGHTCYAN 11 淡青 只用于字符<BR> LIGHTRED 12 淡红 只用于字符<BR> LIGHTMAGENTA 13 淡洋红 只用于字符<BR> YELLOW 14 黄 只用于字符<BR> WHITE 15 白 只用于字符<BR> BLINK 128 闪烁 只用于字符<BR>━━━━━━━━━━━━━━━━━━━━━━━━━━━<BR> 上表中的符号常数与相应的数值等价, 二者可以互换。例如设定兰色背景可<BR>以使用textbackground(1), 也可以使用textbackground(BLUE), 两者没有任何<BR>区别, 只不过后者比较容易记忆, 一看就知道是兰色。<BR> Turbo C另外还提供了一个函数, 可以同时设置文本的字符和背景颜色,这<BR>个函数的调用格式为:<BR> void textattr(int attr);<BR> 其中: attr的值表示颜色形式编码的信息, 每一位代表的含义如下:<BR> 位 7 6 5 4 3 2 1 0<BR> B b b b c c c c<BR> ↓ ┕━━━┙ ┖─────┘<BR> 闪烁 背景颜色 字符颜色<BR> 字节低四位cccc设置字符颜色(0到15), 4~6三位bbb设置背景颜色(0到7),<BR>第7位B设置字符是否闪烁。假如要设置一个兰底黄字, 定义方法如下:<BR> textattr(YELLOW+(BLUE<<4));<BR> 若再要求字符闪烁, 则定义变为:<BR> textattr(128+YELLOW+(BLUE<<4);<BR> 注意:<BR> (1) 对于背景只有0 到7 共八种颜色, 若取大于7小于15的数, 则代表的<BR>颜色与减 7后的值对应的颜色相同。<BR> (2) 用textbackground()和textcolor()函数设置了窗口的背景与字符颜<BR>色后, 在没有用clrscr()函数清除窗口之前, 颜色不会改变, 直到使用了函数<BR>clrscr(), 整个窗口和随后输出到窗口中的文本字符才会变成新颜色。<BR> (3) 用textattr()函数时背景颜色应左移4位,才能使3位背景颜色移到正<BR>确位置。<BR> 下面这个程序使用了关于窗口大小的定义、颜色的设置等函数,在一个屏幕<BR>上不同位置定义了7个窗口, 其背景色分别使用了7种不同的颜色。<BR> 例1.:<BR> #include <stdio.h><BR> #include <conio.h><BR> main()<BR> {<BR> int i;<BR> textbackground(0); /* 设置屏幕背景色 */<BR> clrscr(); /* 清除文本屏幕 */<BR> for(i=1; i<8;i++)<BR> {<BR> window(10+i*5, 5+i, 30+i*5, 15+i); /* 定义文本窗口 */<BR> textbackground(i); /* 定义窗口背景色*/<BR> clrscr(); /* 清除窗口 */<BR> }<BR> getch();<BR> }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -