好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

鼠标器原理及应用.ppt

14页
  • 卖家[上传人]:san****019
  • 文档编号:70446820
  • 上传时间:2019-01-17
  • 文档格式:PPT
  • 文档大小:264.81KB
  • / 14 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 计算机图形学,中南大学国土与测绘系 主讲: 向南平 教授 E-mail: harry.xiang@,第3章 鼠标器原理及应用,3.1 鼠标的安装 3.2 鼠标光标的显示 3.3 鼠标器功能 3.4 支持鼠标的交互式图形软件,3.1 鼠标器原理,3.1.1 鼠标驱动程序的安装 打开计算机后, 即使你已经配置了鼠标器, 也还必须安装鼠标驱动程序,才能使鼠标器开始工作鼠标驱动程序有两类:其一为可执行的驱动程序,如:MOUSE.COM;其二为设备驱动程序,即 MOUSE.SYS两种方式都可以配置在dos系统配置文件config.sys中 鼠标驱动程序装入内存后,其起始地址固定在51*4=204,该地址与中断向量51(十六进制0x33)相对应因此,凡与鼠标有关的操作都是通过对0x33号中断进行 一旦安装好了鼠标驱动程序, 每当移动鼠标或按下鼠标器上一个按键时, 均会产生一次中断33H鼠标驱动程序处理这次中断,设置相应的内部变量,然后返回当鼠标处于静止状态时,驱动程序不返回任何信息,计算机的性能不会受到任何影响3.1 鼠标器原理,3.1.2 鼠标光标 当用键盘作为输入设备时,屏幕上有一个光标表示当前光标位置。

      当用鼠标作为输入设备时,也应该有一个类似的光标作为辅助, 以表示光标的位置, 在Microsoft的鼠标库函数中定义了缺省的光标形状: 在图形方式下是一个箭头, 在文本方式下是一个亮块还可以通过鼠标函数控制鼠标光标的点亮和熄灭 虽然鼠标与显示屏幕在物理上是彼此分开的,但可以把鼠标想象为与屏幕是连在一起的,这是因为鼠标驱动程序自动地维护着一个计算器,借以指示鼠标光标当前在什么位置当用户移动鼠标时,光标在屏幕上也随之向同一方向移动鼠标移动的距离是以“mickey“为单位进行量度的, 一个“mickey“等于1/200英寸当然,对用户来说,并不需要知道鼠标移动的实际距离, 因为使用鼠标设备仅仅只是一个相对位置定标设备3.1 鼠标器原理,3.1.3 虚拟屏幕 要了解鼠标器是如何与显示器通讯,还必须了解虚拟屏幕的概念所谓虚拟屏幕,是对不同显示器上提供的显示方式的一种简化虚拟屏幕可以看作是对物理屏幕的一个抽象对程序员来说,你只需要了解虚拟屏幕的坐标位置鼠标驱动程序会把虚拟屏幕按着当前的显示方式翻译到物理屏幕 鼠标驱动程序把虚拟屏幕当做由水平和垂直排列的点组成的矩阵虚拟屏幕的大小等于当前显示模式的屏幕分辨率。

      如:在CGAHI模式下,屏幕分辨率为640×200,虚拟屏幕的坐标范围即为(0,0)到(640,200) 你可以用中断10H启动计算机的ROM BIOS来设置或改变屏幕显示方式在使用中断10H时, 必须提供一个功能号来指明中断10H所执行的操作 当程序调用中断10H改变屏幕方式时,鼠标驱动程序载取这个中断,并决定采用什么样的虚拟屏幕或者, 当程序调用鼠标器 0 号功能(把鼠标器参数设为缺省值)时, 鼠标器软件也会判别当前显示方式并选择合适的虚拟屏幕3.2 鼠标光标的显示,在IBM 系列微机上有多种显示卡和显示器不同的屏幕显示方式和屏幕特性会影响鼠标光标在屏幕上的显示和移动 屏幕显示方式定义了屏幕的象素个数每个象素是屏幕上的独立点屏幕显示方式取决于显示卡的类型有些显示卡既能显示亮点(即所谓“图形方式”),也能显示亮块(既所谓“文本方式”)虽然各种方式有自己的特点,但鼠标驱动程序对同一类方式采用一致的方法3.3 鼠标器功能,鼠标驱动程序包含35个输入输出操作每个操作(通常称为功能)都是通过给驱动程序发出一个特殊的指令,使应用程序和鼠标器硬件通讯有些函数是向鼠标器查询状态的,如按键状态等另一些功能则控制鼠标器接口的特性,如光标的分辨率、光标形状及光标移动范围等。

      应用程序只须把所需功能告诉驱动程序,而由驱动程序做具体工作3.3.1 功能0:鼠标初始化,在能够使用鼠标之前, 必须对鼠标进行初始化这要通过0号功能完成调用此功能后,鼠标驱动程序重置, 即初始化为各个缺省值,并在发现鼠标硬件和驱动程序时,在AX寄存器返回-1否则,返回0因此,通过0号功能还可以测试鼠标器及鼠标驱动程序是否存在 调用格式: 输入参数:AX=0 返回信息:若AX=0,表示鼠标未安装好,若AX=-1,表示鼠标按照成功,BX等于鼠标器的按键数例3-1测试鼠标安装情况, 并显示检测结果 #include union REGS regs; int msinit_0(int Xlo, int Xhi, int Ylo, int Yhi) { int recored; regs.x.ax = 0; /* 调0号功能,初始化鼠标 */ int86(0x33, 参数intno, intregs, outregs分别表示中断号、输入寄存器、输出寄存器若鼠标初始化成功,则函数同时设定鼠标移动范围为X方向(Xlo~Xhi)、Y方向(Ylo~Yhi),这实际上同时也限定了鼠标器返回值的范围。

      3.3.2 功能3: 读鼠标状态及鼠标位置,一旦鼠标初始化成功,就可通过3号中断来获取任意时刻的鼠标器位置和状态 鼠标器功能3 返回鼠标器左右键的状态, 及光标在屏幕上的水平和垂直坐标 按键状态是一个整数值,低位字节表示左键, 高位字节表示右键, 即:按键状态为1时表示左键按下, 为2 时表示右键按下, 当没有键按下时状态为0(使用三键鼠标时,中间键的状态值为4) 调用格式: 输入参数:AX=3 返回信息:CX返回鼠标位置的X坐标 DX返回鼠标位置的Y坐标 BX返回鼠标按键状态: BX=0 没有健按下, BX=1 左健被按下; BX=2 右键被按下, BX=3 左右健同时被按下以下的函数msget()就是调用功能3来读取鼠标状态和鼠标位置 void msget(int *px, int *py, int *pbuttons) { regs.x.ax = 3; /* 调用鼠标器功能3 */ int86(0x33, 就会把当前的鼠标位置x和y值及一个非零整数(当某个鼠标键被按下时)分别放入变量x,y和buttons中在使用鼠标进行输入时,有一个不可忽视的问题:在使用鼠标时,你可以编一个简单的循环, 不断的调用msget()以获取当前坐标,但这样做是很糟的,因为这会不断的产生一列一列的相同的重复值。

      而我们所希望的应是这样一个函数,它只是在有新的值变化时才返回x和y的值(或鼠标键的状态)这就是说,需要使用一个等待(延迟)循环,此循环只有在当x,y或鼠标键的状态改变时才终止退出但是,如果只简单地实施和使用这样技术的话,又会引起另一个问题:如果等待循环只有在鼠标的状态改变之后才能终止,那么,当你在键盘上操作以希望计算机执行某个任务时,机器则根本不会作任何响应因此,实际使用时又在等待循环内加入一个标准函数kbhit()见下页示例标准鼠标函数,int msread(int *px, int *py, int *pbuttons) { static int but0 = -1; /* 静态变量保存先前鼠标状态 */ static int x0 = -1, y0 = -1; /* 静态变量保存先前鼠标位置 */ do { if (kbhit()) return getch(); /* 当有键盘操作时退出循环 */ msget(px, py, pbuttons); /* 读鼠标状态及鼠标位置 */ } while (*px==x0 /* 无键盘操作,仅有鼠标器操作时返回 -1 */ } 该函数定义了三个静态整型变量:x0,y0,but0,用以保存先前的鼠标位置及鼠标状态。

      在循环体内,先判断是否有击键,若有就由函数getch()返回键码否则读鼠标,仅当鼠标位置及状态均有变化时,才退出循环,并将新的鼠标位置和状态保存到三个静态变量中,然后函数返回一个非零值3.4 支持鼠标的交互式图形软件,下面的例子Example2.C将说明如何使用鼠标移动屏幕上的光标,并通过移动鼠标或从键盘输入端点坐标来移动光标画线 在函数newposition()中,原有用上下左右光标键控制光标移动一个步长、用PgUp,PgDn键增减步长及用回车键代替鼠标按键,用“e”键终止多义线的功能仍然保留这样,即使在没有鼠标的情况下也能运行该程序 使用鼠标画线要经过下列步骤: ⑴ 将光标移至要画的线的一个端点; ⑵ 用鼠标键或回车键选中该点; ⑶ 将光标移至要画的线的另一端; ⑷ 用鼠标左键或回车键选中该点 若想终止折线,用户只需在第⑷步中改用鼠标右键或字母“e”键即可。

      点击阅读更多内容
      相关文档
      新版中华民族共同体概论课件第五讲大一统与中华民族初步形成(秦汉时期)-2025年版.pptx 2023版《思想道德与法治》教学设计-绪论.docx 新版中华民族共同体概论课件第一讲中华民族共同体基础理论-2025年版.pptx 思想道德与法治(2023年版)资料第四章 明确价值要求 践行价值准则 - 副本.docx 2023版教学设计第五章 遵守道德规范 锤炼道德品格思想道德与法治2023版本课件.docx 新版中华民族共同体概论课件第二讲树立正确的中华民族历史观-2025年版.pptx 第六讲践行多边主义完善全球治理讲稿-2025秋形势与政策讲稿.docx 2023版教学设计第四章 明确价值要求 践行价值准则思想道德与法治2023版本课件.docx 新版中华民族共同体概论课件第十六讲文明新路与人类命运共同体-2025年版.pptx 第四讲阔步迈向农业强国讲稿-2025秋形势与政策讲稿.docx 2023版第一章 领悟人生真谛 把握人生方向教学设计思想道德与法治2023版本课件.docx 2023版教学设计第二章 追求远大理想 坚定崇高信念思想道德与法治2023版本课件.docx 微机原理及单片机应用技术概述.ppt 塑料成型工艺与模具结构-塑料成型工艺基础.ppt 市场营销学(第2版)市场营销管理.ppt 税收筹划(第2版)课件:跨国税收筹划问题.ppt 微机原理及单片机应用技术-初识STM32.ppt 政府与非营利组织会计(第7版)课件:政府会计的基本概念.pptx 政府与非营利组织会计(第7版)课件:政府单位会计概述.pptx 银行会计课件:无形资产与其他资产的核算.pptx
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.