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

时间:2015-06-18 04:42:50

标签: c++ windows visual-c++ mfc keyboard-shortcuts

我们有MFC应用程序,它有大约10个图像按钮,我们想要提供快捷键。快捷方式可以自定义。我使用ON_WM_HOTKEY()消息使用热键实现了快捷方式(现在没有自定义)。

在搜索Goolge之后,我有点困惑。例如,this问题表明热键是操作系统的全局,加速器是应用程序的全局。

我应该在申请中使用哪一个。我的快捷键就像Ctrl + Shift + A一样,可以自定义。

其次,在哪里保留它们。是否通常在Windows注册表中存储快捷方式?

2 个答案:

答案 0 :(得分:1)

通过RegisterHotKey(或其在MFC中的等效物)添加的热键肯定是系统全局的,您不应该使用它们来触发程序中的功能,除非您特别希望用户能够从任何地方触发它们。 / p>

(例如,您的应用程序可能是截图应用程序,因此从外部触发功能会有意义)

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

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

答案 1 :(得分:1)

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

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