游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1546|回复: 1

怎样用IDIRECTINPUTDEVICE8直接获取鼠标位置

[复制链接]

83

主题

169

帖子

202

积分

中级会员

Rank: 3Rank: 3

积分
202
发表于 2009-11-18 16:57:00 | 显示全部楼层 |阅读模式
在游戏中用
GetCursorPos(&Mouse);
ScreenToClient(hWnd,&Mouse);
来获取鼠标位置很不准确。

在DirectX的鼠标设备中有没有直接获取鼠标位置的方法?


谢谢!

0

主题

1

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2009-11-23 09:13:00 | 显示全部楼层

Re: 怎样用IDIRECTINPUTDEVICE8直接获取鼠标位置

有的!
DirectInput里有个DIMOUSESTATE的结构体
typedef struct DIMOUSESTATE {
    LONG lX;
    LONG lY;
    LONG lZ;
    BYTE rgbButtons[4];
} DIMOUSESTATE, *LPDIMOUSESTATE;

利用这个结构体调用LPDIRECTINPUTDEVICE8 的两个函数就可以获取到当前的鼠标位置了:
LPDIRECTINPUTDEVICE8 m_mouse = NULL;
DIMOUSESTATE m_mouse_state;
m_mouse->Acquire();
m_mouse->GetDeviceState(sizeof(DIMOUSESTATE), &m_mouse_state);
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-6-19 16:12

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表