云计算百科
云计算领域专业知识百科平台

屏幕程序设计-设计立体投影窗口

 立体投影窗口的原理是在设定的窗口区域内以投影色(一半为黑色)进行涂色。然后再窗口位置上错位后,再用一不同于投影色的颜色画一窗口,将此窗口迭加在原投影窗口上,就形成了立体投影窗口。

 Turbo C的文件窗口函数Window():

 window(int left,int top,int right,int bottom);

 其中left和top是窗口坐上角的屏幕坐标,right和bottom是窗口右下角的坐标。该函数在屏幕上定义一个文本窗口,并且使屏幕上此区域成为激活窗口,缺省窗口是全屏幕。下面的示例程序显示三个立体投影窗口,其中主要的函数Window-3d(int x1,int y1,int y2,int bk-color,fo-color)中的x1,y1,x2,y2分别是投影窗口的左上角和右下角的坐标,bk-color是立体投影窗口的背景色,fo-color是前景色,即在立体投影窗口中显示字符的颜色。

 Window-3d()函数首先设置背景色为黑色,然后根据坐标参数开一窗口(此时屏幕上无窗口显示),通过调用清屏函数clrscr(),使得在屏幕上显示一黑色窗口。

 接着,设置立体投影窗口的背景色和前景色,再按将黑色窗口的X轴和Y轴分别减二,减一后得到的坐标值开一窗口,即此窗口错位叠加在黑色窗口上。再清屏,就显示出一个立体投影窗口。

 函数cprintf(),cputs(),clrscr()是窗口I/O函数,它自动激活定义的窗口,但Turbo C的缺省方式是直接送字符串到屏幕显示缓冲区,这在中文操作系统下不兼容,因而须设置全局变量directvidro = 0,以通过BIOS调用使用这些窗口I/O函数。

 示例程序如下(屏幕上显示蓝、绿、绿三个立体投影窗口):

 #include <conio.h>

 

void window_3d(int x1,int y1,int x2,int y2,int bk_color,int fo_color);

 

void main()

{

 directvideo = 0;

 textmode(3);

 textbackground(WHITE);

 clrscr();

 

 window_3d(10,4,50,12,BLUE,WHITE);

 gotoxy(17,6);

 cputs("第一个窗口区");

 

 window_3d(20,10,60,18,RED,WHITE);

 gotoxy(17,6);

 cputs("第二个窗口区");

 

 window_3d(30,16,70,24,GREEN,WHITE);

 gotoxy(17,6);

 cputs("第三个窗口区");

 

 getch();

 

 return 0;

 

}

 

void window_3d(int x1,int y1,int x2,int y2,int bk_color,int fo_color)

{

 textbackground(BLACK);

 window(x1,y1,x2,y2);

 clrscr();

 textbackgound(bk_color);

 textcolor(fo_color);

 window(x1-2,y1-1,x2-2,y2-1);

 clrscr();

}

 

赞(0)
未经允许不得转载:网硕互联帮助中心 » 屏幕程序设计-设计立体投影窗口
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!