在C++ Builder中使用游戏操纵杆
最大值 */ UINT wZmin; /* Z轴最小值 */ UINT wZmax; /* Z轴最大值 */ UINT wNumButtons; /* 按钮数 */ UINT wPeriodMin; /* 最小调用间隔时间(单位 毫秒)*/ UINT wPeriodMax; /* 最大调用间隔时间(单位 毫秒)*/ }JOYCAPS, *PJOYCAPS, NEAR *NPJOYCAPS, FAR *LPJOYCAPS; typedef struct joyInfo{ UINT wXpos; /* x 轴位置 */ UINT wYpos; /* y 轴位置 */ UINT wZpos; /* z 轴位置 */ UINT wButtons; /* 按钮状态 */ } JOYINFO, *PJOYINFO, NEAR *NPJOYINFO, FAR *LPJOYINFO; 以上这些定义存储在mmsystem.h文件中,所以程序要包含这个头文件。 程序需要首先检查游戏操纵杆的存在,这包括了检查驱动程序支持和确认操纵杆已与系统相连的两项工作。joyGetNumDevs调用检查系统是否配置了游戏端口和驱动程序。如果返回值为零,表明不支持操纵杆功能。如果joyGetNumDevs返回值不为零,则说明系统支持游戏操纵杆功能。但joyGetNumDevs并不能确定操纵杆是否已被连接上了,通过调用可以完成这些工作,并检查是否有错误发生。 如果有游戏端口,joyGetNumDevs返回值通常为16. 一旦确认了操纵杆已连上,就可以接受器发来的消息。joySetCapture通知Windows操纵杆消息应发送到哪里机发送的频率如何。 joySetCapture中的第一个参数通知Windows谁将得到消息,第二个参数确定程序将从那个操纵杆接收消息。第三个参数时表示希望以怎样的频度接受JM_MOVE消息(单位为毫秒),无论操纵杆是否移动,都将以这个频度接受JM_MOVE消息。joySetCapture的四个参数允许程序当操纵杆移动一定的距离后才接受消息。该距离由joySetThreshold设置。 joySetCapture被调用后,窗口将接受操纵杆事件。MM_JOYXMOVE(X=操纵杆号)事件已joySetCapture定义的时间间隔发生。只有当操纵杆的按钮被按下时,MM_JOYXBUTTONUP和MM_JOYXBUTTONDOWN事件才发生。操纵杆时间出发句柄,改变相应的标签状态信息。移动消息也同时通知程序在新的位置重画操纵杆标志。调用joyReleaseCapture通知Windows已结束操纵杆的调用。 在实际编制程序时,应首先在Form1的头文件Form1.h中加入对mmsystem.h的引用,再加入一些相关的消息映射即对MM_JOYXMOVE、MM_JOYXBUTTONUP和MM_JOYXBUTTONDOWN事件的响应函数说明。
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |