MFC "Hidden"还是"Default"功能键加速器?
MFC "Hidden" or "Default" Function Key Accelerators?
我有一个非常正常的MFC SDI应用程序。
我最近开始使用新的MFC功能包(例如CMFCToolbar),在所有这些更改之后,我看到键盘快捷键中一些无法解释的行为。
似乎一些资源id有功能键快捷键(如F6),但我无法找出这是如何工作的,或者如何禁用它。
例如,如果我将鼠标悬停在工具栏中的ID_ABC上,我会看到如下的工具提示:
ABC (F2)做ABC动作
我在加速器表中没有看到VK_F2,或者在任何地方都没有看到。我在解中也找不到(F2)。我觉得这一切都很奇怪。按F2确实做了ABC。
如果我删除整个加速器表,这似乎"解决"了问题,但当然,我没有加速器。当我重新添加加速器时,问题又出现了。
通常,当我遇到这些事情时,我似乎是独自一人,问题的原因通常是"遥远的",有点像在一个糟糕的记忆访问后降落在一些随机函数,并说,"我为什么在这里"?
但是如果有人知道这一点,谢谢!
查看应用程序资源文件中的加速表。是的,许多标准命令都有指定的加速键(例如Ctlr+S映射到文件保存命令)。您可以删除不需要的命令(单独删除,而不是删除整个加速表)。应用程序"记住"旧的加速表分配(或者不能处理新的加速表分配)可能是由于将它们保存在注册表中。去那里,删除你的应用程序的"Workspace"树,然后重新测试。
菜单项标签也必须包含快捷方式,用选项卡分隔(例如File &OpentCtlr+O
)。状态栏提示和工具提示由与菜单或工具栏项具有相同ID的字符串资源创建。您可以在菜单编辑器或字符串表编辑器中创建/编辑这些表。这两项用换行符分隔。
相关文章:
- 在执行其他功能的同时播放动画(LED矩阵和Arduino/ESP8266)
- 多态性和功能结合
- 使用一个考虑到std::map中键值的滚动或换行的键
- 如何使用键盘的特殊键,如Command、Shift、Alt、Tab或C/C++程序中的功能键
- c++ std map 的擦除功能是否释放了指针键的内存?
- 使用CNG存储功能导入Windows密钥存储中的持久键
- 映射与对象键,查找和比较功能
- 在 Gtk+ (gtkmm) 中连接键加速器
- NCurses – getstr() 和功能键
- 在Qt4中,从XSLT转换为HTML,键功能不可用
- 如何在右键单击链接并从上下文菜单访问功能后获取链接的 DOM
- 使用 STL 容器在 logN 中插入、查找最小(键)和删除(基于值)功能
- 有什么功能可以知道键盘的某个键是否被按下
- 检测功能键被按下的最佳方法是什么
- 具有自定义键的Multimap -比较功能
- std::map唯一 std::less<> 2D 点作为键的功能
- 具有OR搜索功能的多键容器
- MFC "Hidden"还是"Default"功能键加速器?
- 键下功能
- 检测c++控制台中功能键