建立自己的工具箱
draw_3win(int x1,int y1,int x2,int y2,int bk_clolor,int for_color)
{
textbackground(bk_color);
window(x1,y1,x2,y2);
clrscr();
textbackground(fo_color);
window(x1-1,y1-1,x2-1,y2-1);
clrscr();
}
[模块2]给文本窗口画一个彩色双线边框
draw_frame(int x1,int y1,int x2,int y2,int color)
{
int i;
textcolor(color);
gotoxy(x1,y1);putch(0xc9);
for(i=1;i<x2;i++) putch(0xcd);
putch(0xbb);
for(i=y1+1;i<y2;i++){
gotoxy(x1,i);
putch(0xba);
gotoxy(x2+x1,i);
putch(0xba);
}
gotoxy(x1,y2);
putch(0xc8);
for(i=1;i<x2;i++) putch(0xcd);
putch(0xbc);
}
[模块3]通过BIOS强制移动光标
static union REGS rg;
move_xy(int x,int y)
{
rg.x.ax=0x200;
rg.x.bx=0;
rg.x.dx=((y<<8)&0xff00)+x;
int86(0x10,&rg,&rg);
}
[模块4]通过BIOS返回光标位置
where_xy(int *x,int *y)
{
rg.x.ax=0x300;
rg.x.bx=0;
int86(0x10,&rg,&rg);
*x=rg.h.d1;*y=rg.h.dh;
}
上面各模块均在Turbo C/C++上使用,稍加修改即可移植到其它系统。