- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在使用 Windows 的 RawInput API 来访问键盘和鼠标输入。我有点困惑的一件事是,当我将鼠标注册为 RawInputDevice
时,我无法移动我的 Win32 窗口或使用那里的控件(关闭、最小化等...)。相反,我得到一个加载图标光标。这是正常行为吗?这是我注册设备的方式:
RAWINPUTDEVICE Rid[2];
Rid[0].usUsagePage = 0x01;
Rid[0].usUsage = 0x02;
Rid[0].dwFlags = RIDEV_NOLEGACY; // adds HID mouse and also ignores legacy mouse messages
Rid[0].hwndTarget = windowHandle;
Rid[1].usUsagePage = 0x01;
Rid[1].usUsage = 0x06;
Rid[1].dwFlags = RIDEV_NOLEGACY; // adds HID keyboard and also ignores legacy keyboard messages
Rid[1].hwndTarget = windowHandle;
if (RegisterRawInputDevices(Rid, 2, sizeof(Rid[0])) == FALSE) {
// smth went wrong.
}
这就是我处理 WM_INPUT
案例的方式:
case WM_INPUT:
char buffer[sizeof(RAWINPUT)] = {};
UINT size = sizeof(RAWINPUT);
GetRawInputData(reinterpret_cast<HRAWINPUT>(lParam), RID_INPUT, buffer, &size, sizeof(RAWINPUTHEADER));
RAWINPUT* raw = reinterpret_cast<RAWINPUT*>(buffer);
if (raw->header.dwType == RIM_TYPEMOUSE || raw->header.dwType == RIM_TYPEKEYBOARD) {
inputManager.processMessage(*raw);
}
break;
有什么问题吗?
最佳答案
您正在设置 RIDEV_NOLEGACY
标志。这会禁用旧版鼠标消息。
因此默认窗口过程不接收鼠标消息。所以它不能移动你的窗口,或者响应按钮点击,或者其他什么。这就是您所看到的。
关于c++ - RawInput 鼠标 - 无法移动窗口或使用控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22455165/
我将 rawinput 与 directx 一起使用...我正在尝试在使用鼠标滚轮时使用相机进行缩放...当我使用以下代码运行程序时,我从 usbuttondata 的 rawinput 获取的数据会
我在使用 RAWINPUT 时出现一些奇怪的行为。下面的代码可以工作: case WM_INPUT: { UINT rawInputSize; GetRawInputData((H
我目前正在使用 Windows 的 RawInput API 来访问键盘和鼠标输入。我有点困惑的一件事是,当我将鼠标注册为 RawInputDevice 时,我无法移动我的 Win32 窗口或使用那里
在查看 RAWINPUT 结构的 MSDN 文档时,它有以下声明: typedef struct tagRAWINPUT { RAWINPUTHEADER header; union {
我正在使用 RawInput处理击键。我发现很难确定 shift 键是否与某个键一起按下。 来自RawInputStructure -> RawKeyboard ,我可以检索被按下的键,但我不确定如果
我正在将一个应用程序从 DirectInput 切换到 RawInput 以处理游戏 handle ,我想为每个游戏 handle 提供一个人类可读的描述。理想的是出现在设备管理器中的设备文本,但 U
我正在尝试使用 SlimDX 和 RawInput 为太空游戏设置键盘和鼠标控件。我目前的代码如下: Device.RegisterDevice(UsagePage.Generic, UsageId.
我正在开发一个应该从 USB 秤获取数据的 Windows 窗体应用程序。USB 秤的处理方式类似于键盘。如果有人在体重秤上放东西,体重秤就会像 USB 键盘一样开始输入重量字符串。之前,我通过单击
我正在尝试使用以下方法从 HID 设备读取数据: uint dwsize = 0; //RAWINPUT input = new RAWINPUT(); uint result = GetRawInp
目前,我正在编写一个程序来拦截来自特定键盘的击键(使用其 HID 进行过滤)。因此,为了了解特定设备发送了哪些击键,我使用了 RawInput 技术,灵感来自这个很棒的教程: http://www.c
似乎无法打印触摸阶段的字符串值已尝试过: let phase = NSTouch.Phase(rawValue: touch.phase.rawValue) print(phas
Python 中 Rawinput 的 C# 等价物是什么? 如何在 C# 控制台应用程序中读取用户输入? 最佳答案 使用这个 Console.ReadLine() 或一个字符 Console.Rea
我是一名优秀的程序员,十分优秀!