gpt4 book ai didi

c++ - WM_KEYDOWN 困惑

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

我试图让我的应用程序在按下 CTRL+S 时执行某些操作。我只是不确定 W 和 L 参数如何为 WM_KEYDOWN 工作。 MSDN 有一些关于位域的内容,我不确定。如何检测 CTRL 和 S?谢谢

如果除了 hWnd 之外的另一个控件获得焦点,我该怎么办?

最佳答案

嗯,this是虚拟键码的大列表。

CTRL-S 将作为 2 个 WM_KEYDOWN 消息发送 - 按下 ctrl 键时的消息(VK_LCONTROLVK_RCONTROL ) 后跟“S”键的 0x53

与其处理这两条消息,不如等待“S”按下的按键消息,然后调用 GetKeyState使用魔术值 VK_CONTROL(否则您需要单独测试左右控制键)以查看是否在按住 CTRL 的情况下按下了 S。

--

显然,键盘消息直接发送到具有焦点的窗口。要使加速器组合在应用程序范围内工作,您需要在将消息分派(dispatch)到焦点窗口之前检查消息 - 即在消息泵中。请参阅 TranslateAccelerator 的文档.

如果你想处理系统范围的按键,另一个答案指向热键 api。

关于c++ - WM_KEYDOWN 困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2709037/

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