📄 scn.htm
字号:
<html>
<head>
<meta http-equiv="Content-Type"
content="text/html; charset=gb_2312-80">
<meta name="Author" content="wdg">
<meta name="GENERATOR" content="Microsoft FrontPage Express 2.0">
<title>网上学堂 --> C语言编程宝典之一 -->字符屏幕函数</title>
</head>
<body>
<div align="center"><center>
<table border="1" cellpadding="4" width="640"
bordercolordark="#FFFFFF" bordercolorlight="#FFFFFF">
<tr>
<td bgcolor="#FFE6B0" bordercolor="#8080FF" class="p9"><font
color="#BB0000">导航条:--></font> <a
href="../../index.html">网上学堂</a> --> <a
href="../tcindex.htm"><font face="宋体">C</font>语言编程宝典之一</a>
-->字符屏幕函数</td>
</tr>
<tr>
<td bordercolor="#8080FF" class="p9">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>
<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>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -