【问题标题】:How to handle escape and return key in an onCommand handler>如何在 onCommand 处理程序中处理转义和返回键>
【发布时间】:2016-09-26 07:47:11
【问题描述】:

我正在使用 On_Command 处理程序,并希望专门将返回键和转义键用于不同的功能。请帮助我了解如何做到这一点,因为我有点震惊。谢谢。 这就是我到目前为止所做的ON_COMMAND(IDC_CALC, &CALC::OnGlobalCALC)

处理程序是

void CALC::OnGlobalCALC()
{
   //Please suggest what to code here
};

【问题讨论】:

  • 请详细说明。您想在命令处理程序中读取用户输入(键盘)吗?

标签: c++ visual-studio-2015 mfc


【解决方案1】:

键盘输入通常通过 WM_KEYDOWN (OnKeyDown) 消息发送。因此,如果您有 CView 或 CFrameWnd,您可以在那里处理它们。

但此消息仅发送到具有焦点的窗口。

如果 Enter 和 Escape 在应用程序中具有全局功能,您可以分配和使用快捷键表。在这种情况下,您可以定义进入或退出由加速器处理(通常在 PreTranslateMessage 中)并转换为 WM_COMMAND 消息。

但是您想要和需要使用什么在很大程度上取决于您真正想要什么以及您拥有什么样的窗口。

【讨论】:

  • WM_KEYDOWN 是要处理的错误消息。您必须实现一个相当重要的状态机来识别您感兴趣的组合键。使用加速器确实容易得多,并且不需要任何代码(当然不是在PreTranslateMessage 中)。不过,您是对的,这个问题方式太模糊了,无法提出任何有根据的建议。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-03-17
  • 2013-01-23
  • 2011-03-27
  • 2021-04-07
  • 2018-06-30
  • 1970-01-01
  • 2012-01-08
相关资源
最近更新 更多