下一个: 9.2 调制解调器编程 向上: 9 编程 I/O 端口 上一个: 9 编程 I/O 端口
鼠标可以连接到串行端口或直接连接到 AT 总线,不同类型的鼠标发送不同类型的数据,这使得鼠标编程有点困难。但是,Andrew Haylett 非常友善地为他的选择程序添加了慷慨的版权声明,这意味着您可以将他的鼠标例程用于您自己的程序。在本指南中,您可以找到带有版权声明的 selection-1.8 预发布版本。X11 已经提供了舒适的鼠标 API,因此 Andrew 的例程应该仅用于非 X11 应用程序。
您只需要 selection 包中的模块 mouse.c 和 mouse.h。要获取鼠标事件,您基本上必须调用 ms_init() 和 get_ms_event()。 ms_init 需要以下 10 个参数
- int 加速度
是加速度因子。如果您移动鼠标超过 delta 像素,运动速度会根据此值加快。 - int 波特率
是您的鼠标使用的 bps 速率(通常为 1200)。 - int delta
这是您必须移动鼠标才能开始加速的像素数。 - char *device
是您的鼠标设备名称(例如 /dev/mouse)。 - int 切换
在初始化时切换 DTR、RTS 或 DTR 和 RTS 鼠标调制解调器线路(通常为 0)。 - int 采样率
鼠标的分辨率 (dpi)(通常为 100)。 - mouse_type 鼠标类型
已连接鼠标的标识符,例如我的鼠标的 P_MSC (Mouse Systems Corp.) ;)。 - int 裕量
用于环绕的裕量大小,这意味着如果裕量为 -1,则尝试将鼠标移过屏幕边界会将鼠标留在边界处。值 >= 0 表示在鼠标向边界移动 slack 像素后,鼠标光标将环绕到另一端。 - int maxx
当前终端在 x 方向上的分辨率。使用默认字体,一个字符宽 10 像素,因此总体的 x 屏幕分辨率为 10*80-1。 - int maxy
当前终端在 y 方向上的分辨率。使用默认字体,一个字符高 12 像素,因此总体的 y 屏幕分辨率为 12*25-1。
get_ms_event() 只需要一个指向 ms_event 结构体的指针。如果 get_ms_event() 返回 -1,则发生错误。如果成功,它返回 0,并且 ms_event 结构体将包含实际的鼠标状态。
下一个: 9.2 调制解调器编程 向上: 9 编程 I/O 端口 上一个: 9 编程 I/O 端口
转换于
Fri Mar 29 14:43:04 EST 1996