加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – 提供RIDEV_NOLEGACY标志时的原始输入和窗口交互问题

发布时间:2020-12-14 05:36:08 所属栏目:Windows 来源:网络整理
导读:我有一些与使用RIDEV_NOLEGACY标志注册的原始输入设备的使用相关的问题. 当窗口未激活并通过鼠标点击设置焦点到窗口时,获得焦点但窗口z顺序保持不变. (alt-tabbing时不会发生这种情况) 无法与窗口chrome进行交互(调整大小,标题栏按钮) 在我的输入类中,我创建
我有一些与使用RIDEV_NOLEGACY标志注册的原始输入设备的使用相关的问题.

>当窗口未激活并通过鼠标点击设置焦点到窗口时,获得焦点但窗口z顺序保持不变. (alt-tabbing时不会发生这种情况)
>无法与窗口chrome进行交互(调整大小,标题栏按钮)

在我的输入类中,我创建了一个线程,它创建一个仅消息窗口并注册原始输入设备.在另一个线程中,我创建了一个用于OpenGL渲染的窗口.

一切正常,直到没有指定遗留标志.也许这只是我对Windows API的无知.我试过通过::设置[Active,Foreground] Window hacks来解决第一个问题.有没有正确的方法来处理这些问题,还是应该避免禁用传统的键盘和鼠标消息?

解决方法

从设备注册原始输入时,无论窗口是前景还是后台,都可以获得原始数据.另一种方法是:从设备获取所有应用程序窗口的原始输入.因此,如果您通过使用RIDEV_NOLEGACY标志阻止生成旧版Windows消息,则可以防止为所有Windows生成旧版Windows消息.大多数Windows应用程序依赖于这些遗留消息才能正常运行.如果您的应用程序不是全屏应用程序,则RIDEV_NOLEGACY不是一个好主意.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读