游戏开发论坛

 找回密码
 立即注册
搜索
查看: 1595|回复: 4

DirectInput的问题``我这里怎样按了一吓就不断发生事件``

[复制链接]

12

主题

36

帖子

40

积分

注册会员

Rank: 2

积分
40
发表于 2004-12-17 17:07:00 | 显示全部楼层 |阅读模式
设置了一个TIMER
SetTimer(hWnd,1,100,NULL);
以下为TIMER事件的处理
        case WM_TIMER:
                        lpKeyboard->GetDeviceState( sizeof(diks), &diks );
                       
                        if( diks[1] & 0x80 )
                        {
                                MessageBox(NULL,TEXT("A"),TEXT("B"),MB_OK);


                        }

                        break;

程序运行后,按了一吓ESC``然后就不断的执行TIEMR事件``就是不断的显示对话框``我想应该是diks[]里没有清除``但是请问怎样清除?我直接用diks[1]=0``不行的```

89

主题

822

帖子

847

积分

高级会员

Rank: 4

积分
847
发表于 2004-12-17 18:05:00 | 显示全部楼层

Re:DirectInput的问题``我这里怎样按了一吓就不断发生事件``

HRESULT SetProperty(          REFGUID rguidProp,
    LPCDIPROPHEADER pdiph
);

调用这个函数,将DIPROP_BUFFERSIZE设置为0

不过虽然可以满足你的要求,恐怕不能达到你写这段代码的本意

12

主题

36

帖子

40

积分

注册会员

Rank: 2

积分
40
 楼主| 发表于 2004-12-17 18:16:00 | 显示全部楼层

Re:DirectInput的问题``我这里怎样按了一吓就不断发生事件``

这段代码的意思是把缓冲区的大小改成0?那么如果再用的时候``就再改成255?

12

主题

36

帖子

40

积分

注册会员

Rank: 2

积分
40
 楼主| 发表于 2004-12-17 18:32:00 | 显示全部楼层

Re:DirectInput的问题``我这里怎样按了一吓就不断发生事件``

这样不太好``

12

主题

36

帖子

40

积分

注册会员

Rank: 2

积分
40
 楼主| 发表于 2004-12-17 21:47:00 | 显示全部楼层

Re:DirectInput的问题``我这里怎样按了一吓就不断发生事件``

噢`问题已经解决``
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-12-23 18:00

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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