游戏开发论坛

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

请教:DirectInput使用鼠标,无法使用,请看有何错误。

[复制链接]

106

主题

743

帖子

745

积分

高级会员

Rank: 4

积分
745
QQ
发表于 2007-4-2 13:21:00 | 显示全部楼层 |阅读模式
LPDIRECTINPUT8 didxzz= NULL;//DirectInput对象指针
LPDIRECTINPUTDEVICE8 di=0;//DirectInput设备指针 键盘
LPDIRECTINPUTDEVICE8 disb=0;//DirectInput设备指针 鼠标

//创建DI对象P115
        DirectInput8Create(cxjb,DIRECTINPUT_VERSION,IID_IDirectInput8,(void**)&didxzz,0);
//创建DI设备P117
        didxzz->CreateDevice(GUID_SysKeyboard,&di,0);//键盘
        didxzz->CreateDevice(GUID_SysMouse,&disb,0);//鼠标
//设置DI数据格式P118
        di->SetDataFormat(&c_dfDIKeyboard);//键盘
        disb->SetDataFormat(&c_dfDIMouse);//鼠标
//设置DI的协调级别P119
        di->SetCooperativeLevel(ckjb,DISCL_FOREGROUND|DISCL_EXCLUSIVE);
        disb->SetCooperativeLevel(ckjb,DISCL_FOREGROUND|DISCL_EXCLUSIVE);
//设置鼠标设备属性121
        DIPROPDWORD dipROPWORD;
        dipROPWORD.diph.dwSize=sizeof(DIPROPDWORD);
        dipROPWORD.diph.dwHeaderSize=sizeof(DIPROPHEADER);
        dipROPWORD.diph.dwObj=0;
        dipROPWORD.diph.dwHow=DIPH_DEVICE;
        dipROPWORD.dwData=10;
        disb->SetProperty(DIPROP_BUFFERSIZE,&dipROPWORD.diph);
//获取输入设备的访问权
        di->Acquire();
        disb->Acquire();
//读取鼠标数据
void shubiao()
{
        ZeroMemory(sbhcq,sizeof(DIDEVICEOBJECTDATA)*10);
        for(i=0;i<10;i++)
        {
//请问GetDeviceData为什么要调用两次?书上的流程就是这样的,没说明。
                disb->GetDeviceData(sizeof(DIDEVICEOBJECTDATA),&sbhcq,&dwReadNum,0);
                disb->Acquire();
                disb->GetDeviceData(sizeof(DIDEVICEOBJECTDATA),&sbhcq,&dwReadNum,0);
//这里累加鼠标X方向移动距离,结果错误。
                if(sbhcq.dwOfs==DIMOFS_X){
                        dd[20]=dd[20]+sbhcq.dwData;
                }
                if(sbhcq.dwOfs==DIMOFS_Y){
                        dd[21]=dd[21]+sbhcq.dwData;
                }
        }
        zj[0]=zj[0]+float(dd[20]);
}

20

主题

33

帖子

33

积分

注册会员

Rank: 2

积分
33
发表于 2007-4-3 16:46:00 | 显示全部楼层

Re:请教:DirectInput使用鼠标,无法使用,请看有何错误。

装一个最新版本的,SDK
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-4-13 00:33

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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