关闭

终于搞定了DirectInput中的FOREGROUND

1089人阅读 评论(0) 收藏 举报

接昨天:

虽然将FOREGROUND改为BACKGROUND解决了问题,但这实际上是治标不治本,FOREGROUND总得解决,经过半天的努力,终于找到问题所在,其实是一个很低级的错误。

ShowWindow( g_hwnd, SW_SHOWDEFAULT );
    UpdateWindow( g_hwnd );

显示窗口一定要放在初始化DirectInputDevice之前。否则做Acquire的时候会得到一个E_ACCESSDENIED.

还有一点很关键,在FOREGROUND模式下,一旦窗口失去焦点将会被自动的Unacquire,所以在处理WM_ACTIVATE消息的代码中重新做Acquire.否则窗口一旦失去焦点再重新获得焦点以后就无法相应键盘的输入.

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:118266次
    • 积分:1637
    • 等级:
    • 排名:千里之外
    • 原创:31篇
    • 转载:1篇
    • 译文:6篇
    • 评论:43条
    文章分类
    最新评论
    英文的游戏开发站点