建立自己的工具箱

Author: Date: 1994-10-14

        [模块1]画一立体彩色窗口(文本方式)
        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++上使用,稍加修改即可移植到其它系统。