【发布时间】:2010-08-15 13:59:11
【问题描述】:
有没有办法确保所有 WM_KEYDOWN 事件都能进入我的主窗口,而不管谁有焦点?这主要是针对全局的东西,比如删除,以及热键,比如 CTRL A 和 CTRL S。问题是如果另一个控件有焦点,所有这些都停止工作。有没有比将它们放在我的主窗口的 WM_KEYDOWN 事件中更好的方法?
谢谢
【问题讨论】:
有没有办法确保所有 WM_KEYDOWN 事件都能进入我的主窗口,而不管谁有焦点?这主要是针对全局的东西,比如删除,以及热键,比如 CTRL A 和 CTRL S。问题是如果另一个控件有焦点,所有这些都停止工作。有没有比将它们放在我的主窗口的 WM_KEYDOWN 事件中更好的方法?
谢谢
【问题讨论】:
是的,您在消息循环中执行此操作。在传统消息循环调用 TranslateAccelerator() 的确切位置。它执行相同类型的操作,捕获快捷键并将它们转换为 WM_COMMAND 消息。典型的类库通过“PreProcessMessage”方法实现这一点。
【讨论】: