📄 王大刚--c语言编程宝典--字符屏幕函数.htm
字号:
<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> } <BR>
<P> 3. 窗口内文本的输入输出函数 <BR>
<P> 一、窗口内文本的输出函数
<BR> int
cprintf("<格式化字符串>", <变量表>);
<BR> int cputs(char
*string); <BR> int
putch(int ch); <BR>
cprintf()函数输出一个格式化的字符串或数值到窗口中。它与printf() 函 <BR>数的用法完全一样,
区别在于cprintf()函数的输出受窗口限制, 而printf() 函 <BR>数的输出为整个屏幕。 <BR>
cputs()函数输出一个字符串到屏幕上, 它与puts()函数用法完全一样, 只 <BR>是受窗口大小的限制。
<BR> putch()函数输出一个字符到窗口内。 <BR> 注意:
<BR> (1) 使用以上几种函数, 当输出超出窗口的右边界时会自动转到下一行的
<BR>开始处继续输出。当窗口内填满内容仍没有结束输出时, 窗口屏幕将会自动逐行 <BR>上卷直到输出结束为止。 <BR>
<P> 二、窗口内文本的输入函数
<BR> int getche(void);
<BR> 该函数在前面已经讲过, 需要说明的是, getche()函数从键盘上获得一个字 <BR>符,
在屏幕上显示的时候, 如果字符超过了窗口右边界, 则会被自动转移到下一 <BR>行的开始位置。 <BR>
下面这个程序给例1.中加入了一些文本的输出函数。 <BR> 例2.:
<BR> #include <stdio.h>
<BR> #include <conio.h>
<BR> int main() <BR>
{ <BR> int i;
<BR> char
*c[]={"BLACK", "BLUE", "GREEN",
"CYAN", "RED",
<BR>
"MAGENTA", "BROWN", "LIGHTGRAY"};
<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> return 0;
<BR> } <BR>
<P> 4. 有关屏幕操作的函数 <BR>
<P> void clrscr(void); 清除当前窗口中的文本内容,
并把光标定位在窗口
<BR>
的左上角(1, 1)处。 <BR> void clreol(void);
清除当前窗口中从光标位置到行尾的所有字符, 光
<BR>
标位置不变。 <BR> void gotoxy(x, y); 该函数很有用,
它用来定位光标在当前窗口中的位
<BR>
置。这里x, y是指光标要定位处的坐标(相对于窗口
<BR>
而言), 当x, y超出了窗口的大小时, 该函数就不起
<BR>
作用了。 <BR>
<P> int gettext(int xl, int yl, int x2, int y2,
void *buffer); <BR> int puttext(int x1, int y1,
int x2, int y2, void *buffer); <BR>
gettext()函数是将屏幕上指定的矩形区域内文本内容存入buffer 指针指向 <BR>的一个内存空间。内存的大小用下式计算:
<BR> 所用字节大小=行数*列数*2 <BR>其中:
<BR>
行数=y2-y1+1 列数=x2-x1+1
<BR> puttext()函数则是将gettext()函数存入内存buffer中的文字内容拷贝到屏
<BR>幕上指定的位置。 <BR> int movetext(int x1, int x2, int y2,
int x3, int y3); <BR> movetext()函数将屏幕上左上角为(x1, y1),
右下角为(x2, y2)的一矩形窗 <BR>口内的文本内容拷贝到左上角为(x3, y3)的新的位置。该函数的坐标也是相对于 <BR>整个屏幕而言的。
<BR> 注意: <BR> 1.
gettext()函数和puttext()函数中的坐标是对整个屏幕而言的, 即是屏 <BR>幕的绝对坐标, 而不是相对窗口的坐标。
<BR> 2. movetext()函数是拷贝而不是移动窗口区域内容, 即使用该函数后, 原
<BR>位置区域的文本内容仍然存在。 <BR> <BR> 例3.
<BR> include <conio.h>
<BR> main() <BR> {
<BR> int i;
<BR> char
*f[]={"Load F3", "Pick Alt-F3",
"New ",
<BR>
"Save F2", "Write to ", "Directory",
<BR>
"Change dir", "Os shee ", "Quit Alt-X"};
<BR> char
buf[9*14*2]; <BR>
clrscr(); <BR>
textcolor(YELLOW);
<BR>
textbackground(BLUE);
<BR> clrscr();
<BR> gettext(10, 2,
24, 11, buf); <BR>
window(10, 2, 24, 11);
<BR>
textbackground(RED);
<BR>
textcolor(YELLOW);
<BR> clrscr();
<BR> for(i=0;
i<9; i++) <BR> {
<BR>
gotoxy(1, i++);
<BR>
cprintf("%s", f[i]);
<BR> }
<BR> getch();
<BR> movetext(10, 2,
24, 11, 40, 10);
<BR> puttext(10, 2,
24, 11, buf); <BR>
getch(); <BR> } <BR> 下面再介绍一些函数:
<BR> void highvideo(void);
设置显示器高亮度显示字符。 <BR> void
lowvideo(void); 设置显示器低亮度显示字符。
<BR> void normvideo(void);
使显示器返回到程序运行前的显示方式。 <BR> int
wherex(void); 这两个函数返回当前窗口下光标的x,
y坐标。 <BR> int wherey(void); <BR> <BR>
<HR width="94%" color=#ee9b73 SIZE=1>
</TD>
<TD class=tt3 vAlign=bottom width="8%" bgColor=#e0e0e0><STRONG><A
href="http://www.hjflying.8u8.com/cl/index.html">后一页</A><BR><A
href="http://www.hjflying.8u8.com/cl/041.htm">前一页</A><BR><A
href="http://www.hjflying.8u8.com/cl/index.html">回目录</A><BR><A
href="http://www.hjflying.8u8.com/index.htm">回首页</A><BR></STRONG></TD></TR></TBODY></TABLE></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -