[VB]用API操作游戏杆

暑假闲来无事,随便找了个网上比较多人推荐的悠闲游戏来玩了下(《咕噜小天使》),正好该游戏支持游戏杆,于是我便萌生了做这个小小的软件的想法,其中参考了Kaper的一篇文章(《[个人心得]Windows下对游戏杆编程(未完)》),小弟第一次在高手如云的CSDN发帖,若有不正确之处,还望各位前辈大虾们指正~~

首先介绍关于游戏杆(JoyStick)的几个API:

joyConfigChanged '通知驱动程序游戏杆设置已经改变并重新从注册表读取设置

joyGetDevCaps '查询指定的游戏杆设备以确定其性能

joyGetNumDevs '返回系统支持的游戏杆设备的数量

joyGetPos '查询指定的游戏杆设备的位置和活动性

joyGetPosEx '查询一个游戏杆设备的位置和它的按扭状态

joyGetThreshold '查询指定的游戏杆设备的当前移动阈值

joyReleaseCapture '释放由JoySetCapture函数设置的在指定游戏杆设备上的捕获

joySetCapture '发送一个游戏杆消息到指定的窗口

joySetThreshold '设置指定的游戏杆设备的移动阈值

主要用到的是 joySetCapture 和 joyReleaseCapture 这两个函数,我们先来看 joySetCapture 这个函数,这个函数的声明是:

Private Declare Function joySetCapture _

                          Lib "winmm.dll" (ByVal hWnd As Long, _

                          ByVal uID As Long, _

                          ByVal uPeriod As Long, _

                          ByVal bChanged As Long) As Long

hWnd 是要获取消息的窗口句柄

uID 是游戏杆的 ID,可以是 JOYSTICKID1 或者 JOYSTICKID2

uPeriod 是查询游戏杆消息的频率,单位是毫秒 bChanged 是改变位置标志。若设为 True,则仅当游戏杆改变的值大于或等于 joySetThreshold 设定的域值时才发送游戏杆值改变的消息到主程序;若设为 False,则只要达到 uPeriod 指定的时间就发送消息到主程序。

joyReleaseCapture 函数只有一个参数 uID,这个参数可以是 JOYSTICKID1 或者 JOYSTICKID2,表示要释放捕捉游戏杆 1 或游戏杆 2 的消息。 

完整演示程序源代码在这里下载:http://download.csdn.net/source/535976

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值