哪个更适合MFC应用程序热键或加速器

Which is better for MFC application hot key or Accelerator?

本文关键字:加速器 应用程序 MFC      更新时间:2023-10-16

我们有MFC应用程序,它有大约10个图像按钮,我们希望为其提供快捷键。快捷方式将是可自定义的。我已经使用ON_WM_HOTKEY()消息实现了带有热键的快捷方式(现在没有自定义)。

在搜索了古尔格之后,我有点困惑。例如,这个问题表明热键对于操作系统是全局的,而加速器对于应用程序是全局的。

我应该在我的应用程序中使用哪一个。我的快捷键类似于 Ctrl + Shift + A,并且可以自定义。

其次,将它们放在哪里。通常将快捷方式存储在Windows注册表中吗?

通过RegisterHotKey添加的热键(或 MFC 中的等效键)绝对是系统全局的,除非您特别希望用户能够从任何地方触发它们,否则不应使用它们来触发程序中的函数。

(例如,您的应用程序可能是一个屏幕截图应用程序,因此从外部触发函数是有意义的)

通常,您应该使用加速器为工具栏按钮等添加键盘绑定。

存储它们的位置取决于您 - 我会说您应该将它们存储在存储应用程序其余配置数据的任何位置。

加速键和热键之间的区别在于提供的链接状态;每当在应用程序具有焦点时按下注册的组合键时,都会注册加速键(正常行为)。但是,如果要注册一个组合键,即使用户在应用程序在后台使用另一个应用程序也能正常工作;去热键。通常使用它的应用程序是剪贴板管理器、屏幕采集卡和启动器。

我建议在注册表中存储配置,但是您也可以使用存储在用户配置文件目录中的配置文件。