?? 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>
字符屏幕函數(shù)
<P> Turbo C2.0的字符屏幕函數(shù)主要包括文本窗口大小的設(shè)定、窗口顏色的設(shè)置、
<BR>窗口文本的清除和輸入輸出等函數(shù)。
<P> 1.文本窗口的定義
<BR> Turbo C2.0默認定義的文本窗口為整個屏幕, 共有80列(或40列)25行的文本
<BR>單元, 每個單元包括一個字符和一個屬性, 字符即ASCII 碼字符, 屬性規(guī)定該字
<BR>符的顏色和強度。
<BR> Turbo C2.0可以定義屏幕上的一個矩形域作為窗口, 使用window()函數(shù)定義。
<BR>窗口定義之后, 用有關(guān)窗口的輸入輸出函數(shù)就可以只在此窗口內(nèi)進行操作而不超
<BR>出窗口的邊界。
<BR> window()函數(shù)的調(diào)用格式為:
<BR> void window(int left, int top, int right,
int bottom);
<BR> 該函數(shù)的原型在conio.h 中 (關(guān)于文本窗口的所有函數(shù)其頭文件均為conio.h,
<BR>后面不再說明)。 函數(shù)中形式參數(shù)(int left, int top)是窗口左上角的坐標,
<BR>(int right, int bottom)是窗口的右下角坐標, 其中(left, top)和(right,
<BR>bottom) 是相對于整個屏幕而言的。 Turbo C 2.0規(guī)定整個屏幕的左上角坐標為
<BR>(1, 1), 右下角坐標為(80, 25)。并規(guī)定沿水平方向為 X軸, 方向朝右; 沿垂直
<BR>方向為 Y軸, 方向朝下。若window()函數(shù)中的坐標超過了屏幕坐標的界限, 則窗
<BR>口的定義就失去了意義, 也就是說定義將不起作用, 但程序編譯鏈接時并不出錯。
<BR> 另外, 一個屏幕可以定義多個窗口, 但現(xiàn)行窗口只能有一個(因為DOS為單任
<BR>務(wù)操作系統(tǒng)), 當需要用另一窗口時, 可將定義該窗口的window() 函數(shù)再調(diào)用一
<BR>次, 此時該窗口便成為現(xiàn)行窗口了。
<BR> 如要定義一個窗口左上角在屏幕(20, 5)處, 大小為30列15行的窗口可寫成:
<BR> window(20, 5, 50, 25);
<P> 2. 文本窗口顏色的設(shè)置
<BR> 文本窗口顏色的設(shè)置包括背景顏色的設(shè)置和字符顏色的設(shè)置,
使用的函數(shù)及
<BR>其調(diào)用格式為:
<BR> 設(shè)置背景顏色: void textbackground(int color);
<BR> 設(shè)置字符顏色: void textcolor(int color);
<BR> 有關(guān)顏色的定義見表1。
<BR>
表1. 有關(guān)顏色的定義
<BR>━━━━━━━━━━━━━━━━━━━━━━━━━━━
<BR> 符號常數(shù) 數(shù)值
含義 字符或背景
<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> 上表中的符號常數(shù)與相應(yīng)的數(shù)值等價, 二者可以互換。例如設(shè)定蘭色背景可
<BR>以使用textbackground(1), 也可以使用textbackground(BLUE), 兩者沒有任何
<BR>區(qū)別, 只不過后者比較容易記憶, 一看就知道是蘭色。
<BR> Turbo C另外還提供了一個函數(shù), 可以同時設(shè)置文本的字符和背景顏色,
這
<BR>個函數(shù)的調(diào)用格式為:
<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> 字節(jié)低四位cccc設(shè)置字符顏色(0到15), 4~6三位bbb設(shè)置背景顏色(0到7),
<BR>第7位B設(shè)置字符是否閃爍。假如要設(shè)置一個蘭底黃字, 定義方法如下:
<BR> textattr(YELLOW+(BLUE<<4));
<BR> 若再要求字符閃爍, 則定義變?yōu)?
<BR> textattr(128+YELLOW+(BLUE<<4);
<BR> 注意:
<BR> (1) 對于背景只有0 到7 共八種顏色, 若取大于7
小于15的數(shù), 則代表的
<BR>顏色與減 7后的值對應(yīng)的顏色相同。
<BR> (2) 用textbackground()和textcolor()
函數(shù)設(shè)置了窗口的背景與字符顏
<BR>色后, 在沒有用clrscr()函數(shù)清除窗口之前, 顏色不會改變, 直到使用了函數(shù)
<BR>clrscr(), 整個窗口和隨后輸出到窗口中的文本字符才會變成新顏色。
<BR> (3) 用textattr()函數(shù)時背景顏色應(yīng)左移4位,
才能使3位背景顏色移到正
<BR>確位置。
<BR> 下面這個程序使用了關(guān)于窗口大小的定義、顏色的設(shè)置等函數(shù),
在一個屏幕
<BR>上不同位置定義了7個窗口, 其背景色分別使用了7種不同的顏色。
<BR> 例1.:
<BR> #include <stdio.h>
<BR> #include <conio.h>
<BR> main()
<BR> {
<BR> int i;
<BR> textbackground(0);
/* 設(shè)置屏幕背景色 */
<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> }
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -