C语言综合编程训练.ppt
将指定模式的驱动程序 *.GBI 从当前路径下调入内存 关闭图形系统回到文本 模式 鼠标系统实际上由两个主要元素组成 鼠标机制和称作鼠标驱动程序的内存驻 留程序。鼠标驱动程序提供与鼠标通信 所需的全部低级支持。此外,它自动维 持鼠标光标位置和发现是否按下了某个 键。一旦装入驱动程序,鼠标就可以被 随后执行的任意程序使用。 InitMouse union REGS regs; regs.x.ax0; int860 x33, ifregs.x.ax0 return false; else return true; HideCur union REGS regs; ifvisual regs.x.ax2; int860 x33, visualfalse; ShowCur union REGS regs; ifvisual regs.x.ax1; int860 x33, visualtrue; Status union REGS regs; regs.x.ax3; int860 x33, xregs.x.cx; yregs.x.dx; statusregs.x.bx; void MoveMouseint x,int y REGS regs; regs.x.ax4; regs.x.cxx; regs.x.dxy; int860 x33, 设置鼠标光标需要三个方面信息 鼠标的外边界8*8点阵,16个整数 鼠标的内部形状8*8点阵,16个整数 以及鼠标的热点的相对坐标int x,y 其中外边界和内边界连续存放,为长度 为32的整型数组 int marks32 SetCursunsigned masks32,x,y union REGS regs; struct SREGS sregs; regs.x.ax9; regs.x.bxx; regs.x.cxy;/* hot spot*/ regs.x.dxunsignedmasks; segread int860 x33, 程序中可直接使用UCDOS中的HZK16, ASC16和HZK24三个文件。 HZK16中存储的是16*16点阵汉字是按行 存储的以便于显示,每个汉字字模 32BYTE,按照国标码顺序存储,其中也 包含了682个纯中文符号字母。 ASC16存储256个西文ASCII码的8*16点阵 格式,按行存储,每个ASCII码16字节。 HZK24X存储24*24点阵打印字模,按列存 储,每个汉字字模占576字节。24*24点 阵汉字存储两比较大,所以从16区1位“ 啊”字开始存储,以减少字库大小。其 中X为KS表示楷体,宋体等。 int getbitunsigned char byte,int bit ifbit7 return 0; return bytebit 函数getbit用于得出一个字节中每个位( bit)是0还是1。 void PutChn24x,y,char *by,color int i1,i2,i3; fori10;i124;i1 LINES fori20;i23;i2 3 bytes per line fori30;i38;i3 fgetbitbyi1*3i2,7-i3 putpixelxi1,yi2*8i3,color; void PutChn16x,y,char* buf,color int i1,i2,i3; fori10;i116;i1 fori20;i22;i2 fori30;i38;i3 ifgetbitbufi1*2i2,7-i3 putpixelxi2*8i3,yi1,color; qu c1 - 0 xa1; wei c2 - 0 xa1; 通过计算个计算出该区位码在汉字库中的 偏移量lenth 32 long offsetqu * 94 wei * long lenth; 24*24点阵汉字字模的读取类似,只是其偏 移量计算稍有不同lenth72 long offsetqu-15* 94 wei* long lenth;