C语言图形编程一字符屏幕.docx
- 文档编号:8124599
- 上传时间:2023-01-29
- 格式:DOCX
- 页数:7
- 大小:20.16KB
C语言图形编程一字符屏幕.docx
《C语言图形编程一字符屏幕.docx》由会员分享,可在线阅读,更多相关《C语言图形编程一字符屏幕.docx(7页珍藏版)》请在冰豆网上搜索。
C语言图形编程一字符屏幕
C语言图形编程(一、字符屏幕函数相应的头文件为conio.h
一、屏幕操作函数
1.clrscr(清除字符窗口函数
2.window(字符窗口函数
3.gotoxy(光标定位函数
4.clreol(清除光标行尾字符函数
5.insline(插入空行函数
6.delline(删除一行函数
7.gettext(拷进文字函数
8.puttext(拷出文字函数
9.movetext(移动文字函数
二、字符属性函数
10.textmode(文本模式函数
11.highvideo(高亮度函数
12.lowvideo(低亮度函数
13.normvideo(void;
14.textcolor(文本颜色函数
15.textattr(文本属性函数
16.textbackground(文本背景函数
三、屏显状态函数
17.wherex(光标处x坐标函数
18.wherey(光标处y坐标函数
19.gettextinfo(获取文本窗口信息函数
在BorlandC++里面提供了字符屏幕和图形函数。
字符屏幕的核心是窗口
(Window,它是屏幕的活动部分,字符输出或显示在活动窗口中进行。
窗口在缺省时,就是整个屏幕。
窗口可以根据需要指定其大小。
同样,对图形函数的操作,也提供了(Viewport。
也就是说图形函数的操作都是在视口上进行。
图形视口与字符窗口具有相同的特性,用户可以在屏幕上定义大小不同的视口,若不定义视口大小,它就是整个屏幕。
窗口是在字符屏幕下的概念,只有字符才能在窗口中显示出来,这时用户可以访问的最小单位为一个字符。
视口是在图形屏幕状态下的概念,文本与图形都可以在
视口上显示,用户可访问的最小单位是一个像素(像素这一术语最初用来指显示器上最小的、单独的发光点单元。
然而现在,其含义拓宽为指图形显示器上的最小可访问点。
字符和图形状态下,屏幕上的位置都是由它们的行与列所决定的。
有一点须指
出:
字符状态左上角坐标为(1,1,但图形左上角坐标为(0,0。
了解字符屏幕和图形函数与窗口和视口的关系是很重要的。
例如,字符屏幕光
标位置函数gotoxy(将光标移到窗口的x,y位置上,这未必是相对于整个屏幕。
下面介绍常用的几
类字符屏幕函数的功能用途、操作方法及其例行程序
2
一、屏幕操作函数
编写程序绘图经常要用到对字符屏幕进行操作。
例如,在往屏幕上写字符之前
首先要将屏幕清除干净。
又如,有时需要在屏幕上多处写上肉中刺样的字符内容,这时最好用屏幕拷贝来高效率地完成这一任务。
对这些操作,BorlandC++提供了一系列字符屏幕操作函数来实现。
1.clrscr(清除字符窗口函数
功能:
函数clrscr(清除整个当前字符窗口,并且把光标定位于左上角(1,1处。
用法:
此函数调用方式为voidclrscr(void;
说明:
括号中void表示无参数。
返回值:
无
2.window(字符窗口函数
功能:
函数window(用于在指定位置建立一个字符窗口。
用法:
此函数调用方式为voidwindow(intleft,inttop,intright,intbottom;
说明:
函数中参数left,top为窗口左上角坐标;right,bottom为其右下角坐标。
若有一个坐标是无效的,则window(函数不起作用。
一旦该函数调用成功,那么所有定位坐标都是相对于窗口的,而不是相对于整个屏幕。
但是建立窗口所用的坐标总是相对整个屏幕的绝对坐标,而不是相对当前窗口的相对坐标。
这样用户就可以根据各种需要建立多个互不嵌套的窗口。
返回值:
无
3.gotoxy(光标定位函数
功能:
函数gotoxy(将字屏幕上的光标移到当前窗口指定的位置上。
用法:
这个函数调用方式为voidgotoxy(intx,inty;
说明:
括号里x,y是,光标定位的坐标,如果其中一个坐标值无效(如坐标超界,那么光标不会移动。
此函数在字符状态(有时称为文本状态下经常用到
返回值:
无
3
例:
下面程序建立两个窗口,然后在窗口里显示字符,字符的位置是调用该函数确
定的。
#include"conio.h>
voidborder(intstartx,intstarty,intendx,intendy
{
registerinti;
gotoxy(1,1;
for(i=0;i<=endx-startx;i++
putch('-';
gotoxy(1,endy-starty;
for(i=0;i<=endx-startx;i++
putch('-';
for(i=2;i<=endy-starty;i++{
gotoxy(1,i;
putch('1';
gotoxy(endx-startx+1,i;
putch('1';
}
}
main(
{
voidborder(int,int,int,int;
clrscr(;
window(6,8,38,12;
border(6,8,38,12;
gotoxy(2,2;
printf("window1";
window(8,16,40,24;
border(8,16,40,24;
gotoxy(3,2;
printf("window2";
getch(;
4.clreol(清除光标行尾字符函数
功能:
函数clreol(在当前字符窗口中清除从光标位置到行尾的所有字符,而光标
位置保持不变。
用法:
它的调用方式为voidclreol(void;
返回值:
无
5.insline(插入空行函数
功能:
函数insline(插入一空行到当前光标所在行上,同时光标以下的所有行都向下顺移一行。
4
用法:
此函数的调用方式为voidinsline(void;
说明:
该函数只用于文本方式,并且在当了符窗口才有效。
返回值:
无
6.delline(删除一行函数
功能:
函数delline(删除当前窗口内光标所在行,同时把该行下面所有行都上移一行。
用法:
此函数调用方式为voiddelline(void;
说明:
注意,如果当前窗口小于整个屏幕,那么该函数只影响到窗口内的字符。
返回值:
无
7.gettext(拷进文字函数
功能:
函数gettext(用于文本状态下将屏幕上矩形域内的文字拷进内存
用法:
该函数调用方式为intgettext(intleft,inttop,intright,intbottom,void*buffer;说明:
函数中参数left,top为矩形区域的左上角坐标,right,bottom为其右下角坐标,这些坐标是屏幕的绝对坐标,不是窗口的相对坐标。
buffer指针必须指向一个足够保存该矩形域内文字的内存。
所用内存大小按下式计算:
点头用字节数=矩形哉内的行数矩形域的列数忽
这里将行数乘以列数再乘以2的原因是保存屏幕上每个字符要用两个字节存储单元,一个字节存储单元存放字符本身,而另一个存放其属性。
返回值:
若函数调用成功则返回1,否则返顺0。
例:
把屏幕左上角点(1,1和右下角点(10,10的区域拷贝到buf指向的内存中去。
buf=(char*malloc(10*10*2;
if(!
bufgettext(1,1,10,10,buf;
8.puttext(拷出文字函数
功能:
函数puttext(把先前由gettext(保存到buffer指向的内存中的文字拷出到屏幕上一个矩形区域中。
用法:
此函数调用方式为intputtext(intleft,inttop,intright,intbottom,void*buffer;说明:
函数里left,top为给出的屏幕上矩形区域的左上角点,right,bottom为其右下角点,其坐标是用屏幕的绝对坐标,而不是用窗口的相对坐标。
返回值:
函数调用成功返回值为1,否则返回0。
例:
屏幕上某个区域内容拷进buf指向的内存中,然后又将这些文字拷出到屏幕
上新位置buf=(char*malloc(10*10*2;
gettext(1,1,10,10,buf;
puttext(16,16,30,30,buf;
9.movetext(移动文字函数
功能:
函数movetext将屏幕上一个矩形区域的文字移到另一个区域上。
用法:
该函数调用方式为intmovetext(intleft,inttop,intright,intbottom,int
newleft,intnewtop;
说明:
上面left,top为矩形区域上角坐标,right,bottom为其右下角坐
标,newleft,newright为移动到区域左上角坐标。
这些坐标是屏幕的绝对坐标,不是
窗口的相对坐标。
若要把屏幕上一段文字移到屏幕的另一位置,那么使用movetext(函数比用gettext(然后再用puttext(效率更高。
返回值:
如果有一个以上坐标无效,那么函数返回值为0,否则返回1。
列:
把屏幕左上角点(8,8右下角点(20,20的矩形区域文字移动到左上角点
(10,10的位置上:
5
movetext(8,8,20,20,10,10;10.textmode文本模式函数功能:
函数textmode针屏幕设置为文本模式(或者说字符状态.用法:
函数调用方式为voidtextmode(intmode;说明:
参数mode必须为表1-2中所示的模式之一⑴以用模式名(符号值也可以用其等价的整数值.表1-2文本模式模
式名(符号值等价整数值说明BW40C40BW80C80MONOLASTMODE01237-140列黑白40列彩色80列黑白80列彩色80列单色上次模式
调用该函数后,屏幕复位,并且所有字符的属性恢复其缺省值.返回值:
无二,字符属性函数用户可以设置字符显示的高亮度或低亮度的写的符闪烁及其背景颜色等.具有这些操作的函数称为字符属性函数.除了仅支持单模式和单色的显示卡外,字符属性函数适用于其余所有的显示卡.11.highvideo(高亮度函数高亮度函数功能:
函数highvideo(设置屏幕为高亮度显示.用法:
此函数调用方式为voidhighvideo(void;说明:
调用该函数后,写到屏幕上的字符是高亮度的.此函数只适用于文本模式状态(或说字符屏幕状态.返回值:
无12.lowvideo(低亮度函数功能:
函数lowvideo(设置屏幕为低亮度显示.用法:
该函数调用方式为voidlowvideo(void;说明:
调用该函数后,此时写到屏幕上的字符是低亮度的.这个函数只适用于文本模式状态(或说字符屏幕状态.返回值:
无13.normvideo(void;功能:
函数normvideo(设置屏幕为正常亮度显示.用法:
这个函数调用方式为voidnormvideo(void;说明:
调用该函数后,此时写到屏幕上的字符是正常亮度的,该函数只适用于文本模式状态(或说字符状屏幕状态.返回值:
无6
14.textcolor(文本颜色函数功能:
函数textcolor(设置字符屏幕下文本颜色(或字符颜色,它也可以用于使字符闪烁用法:
这个函数调用方式为voidtextcolor(intcolor;说明:
函数中参数color的有效值可取表1-3中的颜色名(即宏名或等价值.表1-3颜色名与等价值名等价值含义BLACK
BLUEGREENCYANREDMAGENTABROWNLIGHTGRAYDRAKGRAYLIGHTBLUELIGHTGREENLIGHTCYANLIGHTREDLIGHTMAGENTA
YELLOWWHITEBLINK1512801234567891011121314白闪烁黑蓝绿青红洋红棕淡灰深灰淡蓝淡绿淡青淡红淡洋红黄
textcolor(函数执行后,只影响其后输出探险符颜色,而不改变已经在当前屏幕上的其它字符颜色.显然,如果需要输出的字符闪烁,只要将函数中参数color取为BLINK即可,如果要使字符带颜色闪烁,就必须将所选的颜色值与128作"或"运算.此函数相应的头文件是conio.h返回值:
无例:
下面程序段中第一条语句使输出的字符闪烁,第三条语句使字符输出为经色同时闪烁:
textcolor(BLINK;
printf("hello";textcolor(RED|BLINK;15.textattr(文本属性函数功能:
函数textattr(用于设置文本属性,即字符背景颜色,字符本身颜色和字符闪烁与否.用法:
函数调用方式为voidtextattr(intattribute;说明:
设置字符背景颜色属性字节的最简单方法是,用所选的背景颜色值乘以16再与字符颜色值作按位或(OR运算.例如需要红色背景,绿色字符,就设置成RED*16|GREEN,若还要字符闪烁,就把背景颜色值,字符颜色值与闪烁值一起按位作或运算.如蓝背景,黄字符且闪烁,就设置成为:
7
YELLO|128|BLUE*16第0位用于设置字符颜色.此函数相应的头文件为
conio.h返回值:
无例:
设置背景为蓝色,字符为红色并且字符闪烁:
textattr(RED|128|BLUE*16;16.textbackground(文本背景函数功能:
函数
textbackground设置字符屏幕下文本背景颜色(或字符背景颜色.用法:
此函数调用方式为voidtextbackground(intbcolor;说明:
参数bcolor的有效值取表1-4背景颜色(即宏名或等价值.表1-4背景颜色与等价值背景
颜色等价值BLACK0BLUEGREENCYAN
REDMAGENTABROWN123456含义黑蓝绿青红洋红棕
调用该函数只影响后续写的字符背景颜色,而不改变当前显示在屏幕上的字符背景颜色.返回值:
无三,屏显状态函数这里提供三个在文本模式下屏幕显示状态的函数17.wherex(光标处x坐标函数功能:
函数wherex(返回当前窗口中光标处横向坐标.用法:
此函数调用方式为intwherex(void;说明:
这个函数调用无参数,其对应的头文件是conio.h返回值:
函数调用成功,返回光标处x坐标值.18.wherey(光标处y坐标函数功能:
函数wherey(返回当前窗口中光标处纵向坐标.用法:
该函数调用方式为intwherey(void;说明:
此函数调用无参数,其相应的头文件是conio.h返回值:
函数调用成功,返回光标处y坐标值.8
例:
调作函数wherex(与wherey(,返回当前光标处x坐标与y坐标,并赋给整型
变量xpos,ypos.intxpos,ypos;xpos=wherex(;ypos=wherey(;19.gettextinfo获取文本窗口信息函数功能:
函数gettextinfo(获取当前文本窗口信息,并存放在实参结构中.用法:
函数调用方式为voidgettextinfo(structtext-info*info;说明:
函数中参数info为structtext-info结构型指针,structtext-info结构在此函数相应的头文件中定义为:
structtext-info{unsignedcharwinleft;unsignedcharwintop;unsignedcharwinright;
unsignedcharwinbottom;unsignedcharattribute;unsignedcharnormattr;unsignedcharcurrmode;unsignedcharscreenhightunsignedcharscreenwidth;unsignedcharcurx;
unsignedcharcury;〃窗口左上角x坐标//窗口左上角y坐标//窗口右下角x坐标//窗口右下角y坐标//文本属性//正常属性//当前屏显模式//文本窗口高度(以行数计//文本窗口宽度(以字符个数计//光标处x坐标//光标处y坐标};记住,调用函数gettextinfo(时,要传递structtext-info结构型指针或该结构的首地址,不要传递结
构变量本身•返回值:
返回文本窗口角点坐标,高宽度,文本属性等值,并存放在info所
指向的结构变量中.例:
程序语句说明如何正确调用gettextinfo(函数:
structtext-info
win-status;gettextinfo(&win-status;9
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 图形 编程 字符 屏幕