游戏开发论坛

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

请教 dinput中鼠标左键放开瞬间怎样获得?

[复制链接]

83

主题

169

帖子

202

积分

中级会员

Rank: 3Rank: 3

积分
202
发表于 2008-8-27 12:24:00 | 显示全部楼层 |阅读模式
用以下代码只可以获得鼠标按下一瞬间但是没法知道放开的瞬间

#define ITEMS_NUM 10    //鼠标缓冲区数组元素个数
DIDEVICEOBJECTDATA diDeviceObjectData[ITEMS_NUM];

//判断鼠标按键
bool CDirectInput::IsMousePressed(DWORD key)    //key=DIMOFS_BUTTON0 鼠标左键按下
{
    for(int i=0;i<ITEMS_NUM;i++)
    {
        if((diDeviceObjectData.dwData & 0x80) && diDeviceObjectData.dwOfs==key)
            return true;
    {
    return false;
}


我试过DIMOFS_BUTTON0到DIMOFS_BUTTON2有用,分别是左键按下、右键按下、中键按下。
DIMOFS_X、DIMOFS_Y、DIMOFS_Z也有用。
但是DIMOFS_BUTTON3到DIMOFS_BUTTON7就不知道是干什么的了。

83

主题

169

帖子

202

积分

中级会员

Rank: 3Rank: 3

积分
202
 楼主| 发表于 2008-8-27 22:13:00 | 显示全部楼层

Re:请教 dinput中鼠标左键放开瞬间怎样获得?

解决了
只要diDeviceObjectData.dwData中的数据全为零就可以知道鼠标已经放开了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-21 11:48

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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