基于C++的游戏操纵杆模拟鼠标的程序
}
//继续传递消息
Tform::Dispatch(Message);
}
//自定义的MM_JOY1MOVE消息响应函数OnJoyDown
void __fastcall TForm1::OnJoyMove(Tmessage Message)
{
int x,y;
POINT pt;
//取得鼠标当前坐标
GetCursorPos(pt);
x=LOWORD(Message.Lparam);
y=HIWORD(Message.Lparam);
if(x!=32678)
{
if(x)
{
//向右
pt.x+=10;
}
else
{
//向左
pt.x-=10;
}
}
if(y!=32678)
{
if(y)
{
//向下
pt.y+=10;
}
else
{
//向上
pt.y-=10;
}
}
//设置鼠标坐标
SetCursorPos(pt.x,pt.y);
//继续传递消息
Tform::Dispatch(Message);
}
注意:调试运行这个程序,系统必须要安装有游戏操纵杆。自定义的消息处理函数末尾最好加一句 TForm1::Dispatch(Message),这条语句的作用是让消息继续传递下去。Windows是使用用消息处理机制的,如果没有这一句语句,消息将完全被拦截,Windows程序可能由于得不到消息而无法实现正常的功能。
评论