、字元螢幕函數
1、文木視窗的定義
TC預設定義的文本視窗為整個螢幕,共有80列(或40列)25行的文本單元,每個單元包括一個字 符和一個屈性,字元即ASCII碼,屬性規定該字元的顔色和強度。在TCH' nJ-以使用window()函數定義屏 幕上的一個矩形域作為視窗。視窗定義Z後有關視窗的輸入輸出函數就可以隻在此視窗内進行操作而不超 出視窗的邊界。
其調川格式:void window (int left,int top,int right,int bottom);
該函數的原型在conio.h屮。函數屮形式參數(inf left,int top)是視窗左上介的坐标,(int right,int bottom) 則是視窗右下角的坐标。TC規定整個螢幕的左上角坐标為(1,1),右下角坐标為(80,25),如:
window(20,5,50,20)衣示定義一個視窗左上角在螢幕(20,5)處,大小為30列15行的視窗。
2、文本視窗顔色的設定
文木視窗顔色的設定包括背景顔色的設定和字元顔色的設定,使川的函數及其調川格式為: 設定背景顔色:void textbackground(int color);
設定字元顔色:void textcolor(int color);
其顔色的定義見表:
符号常數
數值
含義
字元或背景
BLACK
八、、
兩者均可
BLUE
1
藍
兩者均可
GREEN
2
綠
兩者均可
CYAN
3
青
兩者均可
RED
4
紅
兩者均可
MAGENTA
5
洋紅
兩者均可
BROWN
6
棕
兩者均可
LIGHTGRAY
7
淡灰
兩者均可
DARKGRAY
8
深灰
隻用于字元
LIGHTBLUE
9
淡藍
隻用于甯符
LIGHTGREEN
10
淡綠
隻用于字元
LIGHTCYAN
11
淡青
隻用于字元
LIGHTRED
12
淡紅
隻川于字元
LIGHTMAGENTA
13
淡洋紅
隻川于字元
YELLOW
14
黃
隻用于字元
WHITE
15
白
隻用于字元
BLINK
128
閃爍
隻川于字元
3、視窗内文本的輸入、輸出函數
視窗内文本的輸出函數
int cprin(f(“v格式化字元串>”,v變量清單>);
int cputs(chai* *string);
int putch(int ch);
cprintf()函數輸出一個格式化的字元串或數值到視窗中。它與printf()換數的用法完全一樣,差別就 在于cprintf()函數的輸出受視窗限制,而printf()函數的輸出為整個螢幕。
cputs()函數輸出一個字元串到螢幕上,它與puts()函數用法完全一樣,隻是受視窗大小的限制。 putch()函數輸出一個字元到視窗内。
注意:使用以上兒種函數吋,當輸出超出視窗的右邊界吋會自動轉到下一行的開始處繼續輸出。當 視窗内填滿内容仍沒有結束輸出時,視窗螢幕将會白動逐行上卷,直到輸出結束為止。
視窗内文木的輸入函數
int getche(void);該函數無須按冋車鍵就可以從鍵盤上獲得一個字元,在螢幕上顯示的時候,如果字元 超過了視窗右邊界,則會被口動轉移到下一行的開始位置。
4、有關螢幕操作的函數
void clrscr(void);清除目前視窗中的文本内容,并把光标定位在視窗的左上角(1, 1)處。
void clreol(void):清除目前視窗中從光标位置到行尾的所有字元,光标位置不變。
void gotoxy(x,y);該函數川來定位光标在目前視窗屮的位置。這電x, y是指光标要定位處的坐标(相 對于視窗而言),當x, y超出了視窗的人小時,該函數就不起作川了。
int gettext(int xl,int yl,int x2,int y2,void * buffer);
int puttext(int xl,int yl,int x2,int y2,void ^buffer);
gettext()函數是将螢幕上指定矩形區域内的文本内容存入buffer指針指向的一個記憶體空間。記憶體的大 小用下式計算:所用位元組大小二行數*列數*2。其中,行數=y2-yl+l,列數=x2-xl+l; puttext()函數是将用 gettext()函數存入記憶體buffer中的文字内容拷貝到螢幕上指定的位置。
int movctcxt(inl xl,inl yl,inl x2,int y2,int x3,int y3);
movctcxK )函數将螢幕上左上角為(xl,yl),右下角為(x2,y2)的一矩形視窗内的文本内容拷貝到左 上角為(x3,y3)的新位置。該函數的坐标也是相對于整個螢幕而言的。
注意:gettext( )|^|數和puttext( )|^|數中的坐标是相對整個螢幕而言的,即是螢幕的絕