游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1475|回复: 0

dinput如何取得窗口内鼠标的绝对坐标?

[复制链接]

2

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2011-1-6 10:30:00 | 显示全部楼层 |阅读模式
请问,使用dinput时获取的状态都是相对坐标,如何能得到绝对坐标呢?
lpdimouse->GetDeviceState(sizeof(DIMOUSESTATE), (LPVOID)&mouse_state);
看书上写着有绝对模式和相对模式,怎么样进入绝对模式呢?

还有就是即便用户不在当前窗口下,比如在VS下工作,GetDeviceState仍然会得到状态,请问我能够判断这个状态是在我窗口内做的,还是在其他窗口下的吗?
比如
if (mouse_state.rgbButtons[0])
{
    char msg[20];
    sprintf(msg, "x=%d, y=%d", mouse_x, mouse_y);
    MessageBox(mainWindow, msg, "mouse", MB_OK);
}
增加怎样的判断,可以当鼠标不在窗口内时不显示MessageBox?

我在想是不是我不应该使用dinput而直接用WIN32API了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-3 06:01

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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