游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2804|回复: 3

mfc框架下使用directinput的问题

[复制链接]

3

主题

5

帖子

9

积分

新手上路

Rank: 1

积分
9
发表于 2008-5-16 23:15:00 | 显示全部楼层 |阅读模式
为什么CreateKeyboard函数的参数为view类窗口的句柄时SetCooperativeLevel会失败,我到网上找了些资料,资料说要传递框架窗口的句柄,果然SetCooperativeLevel没问题,但是接下来的Acquire函数出错,函数返回值是E_ACCESSDENIED。请问有谁有什么办法解决啊,或者说在mfc框架下的view中绘图时,该怎样传递句柄来初始化d3d设备和directinput?这个问题困扰一天了,急啊,恳求指导啊

bool CInput::CreateKeyboard(HWND hWnd)
{
if(FAILED(DirectInput8Create(hInst,DIRECTINPUT_VERSION,IID_IDirectInput8,(void**)&m_pIDirectInput,NULL)))
        {
                return false;
        }       
       //创建键盘输入设备
        if(FAILED(m_pIDirectInput->CreateDevice(GUID_SysKeyboard,&m_pKeyboardDevice,NULL)))
        {
                return false;
        }
        //设置键盘输入设备的数据格式
        if(FAILED(m_pKeyboardDevice->SetDataFormat(&c_dfDIKeyboard)))
        {
                return false;
        }
        //设置键盘输入设备的协调级别
        if(FAILED(m_pKeyboardDevice->SetCooperativeLevel(hWnd,DISCL_FOREGROUND|DISCL_EXCLUSIVE/*DISCL_NONEXCLUSIVE*/)))
        {
                return false;
        }

        //获取键盘输入设备的访问权
        if(FAILED(m_pKeyboardDevice->Acquire()))
        {
                return false;
        }
        //初始化键盘缓冲区
        ZeroMemory(m_KeyBuffer,sizeof(char)*256);
        return true;
}

3

主题

5

帖子

9

积分

新手上路

Rank: 1

积分
9
 楼主| 发表于 2008-5-16 23:20:00 | 显示全部楼层

Re:mfc框架下使用directinput的问题

我在线等。。

1

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2008-5-20 22:27:00 | 显示全部楼层

Re: mfc框架下使用directinput的问题

DIERR_OTHERAPPHASPRIO Another application has a higher priority level, preventing this call from succeeding. This value is equal to
the E_ACCESSDENIED standard COM return value. This error can be returned when an application has only foreground access to a device
but is attempting to acquire the device while in the background.

我也碰到这个问题,找了一下是没有窗口在background时的权限
SetCooperativeLevel(hWnd, DISCL_BACKGROUND | DISCL_NONEXCLUSIVE);
注意这里改成DISCL_BACKGROUND 就OK了

0

主题

1

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2010-5-20 15:39:00 | 显示全部楼层

Re:mfc框架下使用directinput的问题

同求!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-9 14:44

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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