- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
语言程序设计课程大型作业
鼠标光标的隐藏 HideCur() { union REGS regs; if(visual){ regs.x.ax=2; int86(0x33,regs,regs); visual=false; }} 第31页/共49页 鼠标光标的显示 ShowCur() { union REGS regs; if(!visual){ regs.x.ax=1; int86(0x33,regs,regs); visual=true; }} 第32页/共49页 鼠标光标的显示与隐藏 在鼠标驱动程序中,鼠标的显示状态用0值表示,隐藏用负值表示,每调用一次显示功能则该值加一,每调用一次隐藏功能,则该值减一。这样,在多次调用了驱动程序的隐藏鼠标光标功能后,再调用显示鼠标光标功能时,将不能正常显示鼠标光标。需要加入一个visual布尔型变量,来取代驱动程序中的数值。 第33页/共49页 读取鼠标的状态 Status( ) { union REGS regs; regs.x.ax=3; int86(0x33,regs,regs); x=regs.x.cx; y=regs.x.dx; status=regs.x.bx; } 第34页/共49页 读取鼠标的状态 其中X,Y为光标位置 status1左键状态,1为按下,0为未按 status2右键状态,1为按下,0为未按 status4中键状态,1为按下,0为未按 要注意循环检测时的抖动现象,可增加一些空循环或延时来清除剩余的按键信号。 第35页/共49页 设置光标位置 void MoveMouse(int x,int y) { REGS regs; regs.x.ax=4; regs.x.cx=x; regs.x.dx=y; int86(0x33,regs,regs); } 第36页/共49页 设置鼠标光标形状 设置鼠标光标需要三个方面信息: 鼠标的外边界:8*8点阵,16个整数 鼠标的内部形状:8*8点阵,16个整数 以及鼠标的热点的相对坐标:int x,y 其中外边界和内边界连续存放,为长度为32的整型数组 int marks[32] 第37页/共49页 设置鼠标光标形状 SetCurs(unsigned masks[32],x,y) { union REGS regs; struct SREGS sregs; regs.x.ax=9; regs.x.bx=x; regs.x.cx=y;/* hot spot*/ regs.x.dx=(unsigned)masks; segread(sregs); int86(0x33,regs,regs); } 第38页/共49页 手的光标数据 {0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, /*cursor mask*/ 0x0c00, 0x1200, 0x1200, 0x1200, 0x13fe, 0x1249, 0x1249, 0x1249, 0x7249, 0x9001, 0x9001, 0x9001, 0x8001, 0x8001, 0x4002, 0x3ffc /*cursor mask*/} {4,0} /*hot spot*/ 第39页/共49页 设置鼠标的移动范围 SetMouseArea(int x0,int y0,int x1,int y1) { union REGS regs; regs.x.ax=7;regs.x.cx=x0;regs.x.dx=x1; int86(0x33,regs;regs); regs.x.ax=8;regs.x.cx=y0;regs.x.dx=y1; int86(0x33,regs,regs); } 第40页/共49页 西文状态下汉字的显示 汉字库简介 取得字节的某一位 显示24点阵汉字 显示16点阵汉字 在字库中取字模 第41页/共49页 汉字库简介 程序中可直接使用UCDOS中的HZK16,ASC16和HZK24三个文件。 HZK16中存储的是16*16点阵汉字是按行存储的以便于显示,每个汉字字模32BYTE,按照国标码顺序存储,其中也包含了682个纯中文符号字母。 第42页/共49页 汉字库的情况 ASC16存储256个西文ASCII码的8*16点阵格式,按行存储,每个ASCII码16字节。 HZK24X存储24*24点阵打印字模,按列存储,每个汉字字模占576字节。24*
您可能关注的文档
最近下载
- resform使用说明.doc
- 丙烯酸乳液标准文本.pdf VIP
- 《劳动权益保护法规》课件.ppt VIP
- 要素式强制执行申请书(申请执行用).docx VIP
- GEOMETRICAL OPTICS AND OPTICAL DESIGN (几何光学和光学设计).PDF VIP
- T_CSTE 0001—2021_污(废)水处理用碳源.pdf VIP
- 赣科技版信息科技七年级上册 第6课《网络创新应用》第2课时 教案.doc VIP
- 大型齿轮渐开线齿形误差在位测量仪(测控第一大组课程设计报告).docx VIP
- 人工智能助力文化创意产业增长分析报告.docx VIP
- 杉木人工林抚育经营技术规程.pdf VIP
原创力文档


文档评论(0)