C语言new函数的使用 c new函数( 二 )


textattr(128+YELLOW+(BLUE4);
注意:
(1) 对于背景只有0 到7 共八种颜色, 若取大于7 小于15的数, 则代表的
颜色与减 7后的值对应的颜色相同 。
(2) 用textbackground()和textcolor() 函数设置了窗口的背景与字符颜
色后, 在没有用clrscr()函数清除窗口之前, 颜色不会改变,直到使用了函数
clrscr(), 整个窗口和随后输出到窗口中的文本字符才会变成新颜色 。
(3) 用textattr()函数时背景颜色应左移4位, 才能使3位背景颜色移到正
确位置 。
下面这个程序使用了关于窗口大小的定义、颜色的设置等函数, 在一个屏幕
上不同位置定义了7个窗口, 其背景色分别使用了7种不同的颜色 。
例1.:
#include stdio.h
#include conio.h
main()
{
int i;
textbackground(0);/* 设置屏幕背景色 */
clrscr();/* 清除文本屏幕 */
for(i=1; i8; i++)
{
window(10+i*5, 5+i, 30+i*5, 15+i); /* 定义文本窗口 */
textbackground(i);/* 定义窗口背景色 */
clrscr();/* 清除窗口 */
}
getch();
}
3. 窗口内文本的输入输出函数
一、窗口内文本的输出函数
int cprintf("格式化字符串", 变量表);
int cputs(char *string);
int putch(int ch);
cprintf()函数输出一个格式化的字符串或数值到窗口中 。它与printf() 函
数的用法完全一样, 区别在于cprintf()函数的输出受窗口限制, 而printf() 函
数的输出为整个屏幕 。
cputs()函数输出一个字符串到屏幕上, 它与puts()函数用法完全一样,只
是受窗口大小的限制 。
putch()函数输出一个字符到窗口内 。
注意:
(1) 使用以上几种函数,当输出超出窗口的右边界时会自动转到下一行的
开始处继续输出 。当窗口内填满内容仍没有结束输出时, 窗口屏幕将会自动逐行
上卷直到输出结束为止 。
二、窗口内文本的输入函数
int getche(void);
该函数在前面已经讲过, 需要说明的是, getche()函数从键盘上获得一个字
符, 在屏幕上显示的时候, 如果字符超过了窗口右边界, 则会被自动转移到下一
行的开始位置 。
下面这个程序给例1.中加入了一些文本的输出函数 。
例2.:
#include stdio.h
#include conio.h
int main()
{
int i;
char *c[]={"BLACK","BLUE","GREEN","CYAN","RED",
"MAGENTA", "BROWN", "LIGHTGRAY"};
textbackground(0);/* 设置屏幕背景色 */
clrscr();/* 清除文本屏幕 */
for(i=1; i8; i++)
{
window(10+i*5, 5+i, 30+i*5, 15+i); /* 定义文本窗口 */
textbackground(i);/* 定义窗口背景色 */
clrscr();/* 清除窗口 */
}
getch();
return 0;
}
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 x1, int y1, int x2, int y2, void *buffer);
gettext()函数是将屏幕上指定的矩形区域内文本内容存入buffer 指针指向
的一个内存空间 。内存的大小用下式计算:
所用字节大小=行数*列数*2
其中:
行数=y2-y1+1列数=x2-x1+1
puttext()函数则是将gettext()函数存入内存buffer中的文字内容拷贝到屏
幕上指定的位置 。
int movetext(int x1, int x2, int y2, int x3, int y3);

推荐阅读