gpt4 book ai didi

c++ - 如何防止箭头键改变 UI 状态?

转载 作者:行者123 更新时间:2023-11-30 04:37:11 26 4
gpt4 key购买 nike

我正在使用 C++ 结合普通的旧 WinAPI、GDI 和 GDI+ 开发俄罗斯方 block 游戏。应用程序窗口包含一些 UI 控件以及用于绘制游戏状态的静态控件。我正在使用键盘 Hook ,以便我可以响应箭头键移动当前 block 和空格键放下 block 。

但是,击键也会影响 UI。移动箭头键可能会更改单选框或组合框的选择状态,按下空格键可能会触发按钮或复选框,具体取决于当前获得焦点的控件。

有没有办法避免这种情况发生?我的临时 hack 是强制将焦点放在隐藏的文本框上。我将不胜感激更清洁的解决方案。

最佳答案

如果您正在使用 WH_KEYBOARD_LL 或 WH_KEYBOARD 键盘钩子(Hook),您可以从 hookproc 返回 1 以防止将键传递给系统的其余部分。在这种情况下不要调用下一个 hookproc。

但是,这可能会对使用钩子(Hook)并在钩子(Hook)链中跟随你的东西造成严重破坏。

如果您正在编写一个 GDI 应用程序,您已经有一个消息循环,您是否有任何理由不使用消息循环来查找 KEY_UP/KEY_DOWN 消息?

您可以设置其他控件,使它们不会获得焦点...

关于c++ - 如何防止箭头键改变 UI 状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4062189/

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