代码之家  ›  专栏  ›  技术社区  ›  Lawrence Barsanti

是否可以告诉斯金特拉忽略某些按键并将其传递到父窗口?

  •  0
  • Lawrence Barsanti  · 技术社区  · 16 年前

    2 回复  |  直到 16 年前
        1
  •  1
  •   please delete me please delete me    16 年前

    有两种选择,真的。钩住 WM_KEYDOWN http://msdn.microsoft.com/en-us/library/ms645526(VS.85).aspx )将按键转换为更高级别的命令ID,并在 WM_COMMAND 处理程序。

    使用加速表无疑是“正确”的方法,但是 WM_键控

    (如果使用MFC,则特定于窗口的加速器表的magic framework函数为 CWnd::PreTranslateMessage . 覆盖它,呼叫 TranslateAccelerator 在那里(传递在构造函数中加载的加速器表/ OnCreate FALSE --如果 平移加速器 返回0——或 TRUE --如果它返回其他东西。这允许使用特定于闪烁窗口的键盘快捷键。)

    顺便说一句,这两种方法非常愉快地共存,所以有些按键可以用加速器处理,有些可以用 WM_键控 . 我的上一个闪烁程序就是这样做的;恐怕我完全不记得为什么了,但它确实工作得很好。

        2
  •  2
  •   ChrisV    16 年前