[英]MFC CEdit Control does not handle Key Pressed after added to Accelerator
[英]Which is better for MFC application hot key or Accelerator?
我们有MFC应用程序,它具有大约10个图像按钮,我们要向它们提供快捷键。 快捷方式将是可定制的。 我已经使用ON_WM_HOTKEY()
消息使用热键实现了快捷方式(现在没有自定义功能ON_WM_HOTKEY()
。
在搜索Goolge之后,我很少感到困惑。 例如, 此问题表明热键对于OS是全局的,而Accelerator对于应用程序是全局的。
我应该在我的应用程序中使用哪一个。 我的快捷键类似于Ctrl + Shift + A,并且可以自定义。
其次,在哪里保留它们。 通常在Windows注册表中存储快捷方式吗?
通过RegisterHotKey
(或MFC中的等效键)添加的热键绝对是系统全局的,除非您特别希望用户能够从任何地方触发它们,否则不应在程序中使用它们来触发功能。
(例如,您的应用程序可能是屏幕截图应用程序,因此从外部触发功能将很有意义)
通常,尽管您应该使用加速器为工具栏按钮等添加键盘绑定。
存储它们的位置取决于您-我想说您应该将它们存储在应用程序其余配置数据的存储位置。
加速键和热键之间的区别在于所提供的链接状态。 在应用程序具有焦点(正常行为)的情况下,每按一次已注册的按键组合,就会注册一次加速键。 但是,如果您希望注册一个即使在用户在后台运行其他应用程序时仍然有效的组合键,则该键组合仍然有效。 寻求热键。 常用的应用程序是剪贴板管理器,屏幕抓取器和启动器。
我会建议将配置存储在注册表中,但是您也可以使用存储在用户配置文件目录中的配置文件。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.