gpt4 book ai didi

Windows 上的 C++ : Using DirectInput without a window?

转载 作者:可可西里 更新时间:2023-11-01 09:22:06 25 4
gpt4 key购买 nike

简短版:

如果我无法访问 HWND/HINSTANCE,我该如何初始化和使用 DirectInput?

背景信息:

我目前在我的程序的大部分部分使用 SFML,其中包括窗口创建。奇迹般有效。但我对 SFML 的输入系统并不完全满意(例如,我想要用于 XBox 360 游戏 handle 的 XInput)并想编写自己的输入系统。

我已经编写了 XInput 部分,但是对于其他游戏 handle /操纵杆/...我还需要 DirectInput。由于 SFML 对用户隐藏了与 Windows 相关的代码(这是正确的),因此我无权访问 hwnd 或 hinstance。没有它我如何使用 DirectInput?也许一直在捕获输入,而不仅仅是在窗口处于事件状态时? (然后我可以根据窗口的(取消)激活事件过滤它。)

谢谢,

先生。旺科

最佳答案

找回窗口并不难,使用 EnumThreadWindows() 和 GetCurrentThreadId()。

请注意,DirectInput 在任何地方都不需要窗口句柄。它只需要 DirectInput8Create() 中的实例句柄。 GetModuleHandle(NULL) 适用于 SFML 应用程序。

关于Windows 上的 C++ : Using DirectInput without a window?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4547073/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com