在VB6中为工具栏控件创建快捷键

4
在我的VB6项目中,我只在主MDI From中使用工具栏控件(而不是菜单栏),该工具栏有大图片表示诸如“新建”,“保存”,“查看”,“帮助”等操作。我想知道是否有任何方法为这些操作创建键盘快捷方式。据我所知,MS Windows Common Controls 6.0的Toolbar控件属性没有显示任何相关选项来完成此操作。由于MDI表单没有任何键事件,我也无法通过关联键来创建快捷方式。我不想在我的表单中使用菜单栏,因为它只有很少的项目,所以只有工具栏才能胜任。请提供任何想法来为工具栏按钮创建快捷方式...... :-| 预先感谢您的帮助.............
2个回答

0
在您的表单中添加一个键盘事件。这样您就可以通过让它们调用与菜单栏鼠标按下事件相同的函数来处理快捷键。
例如,您可能会有类似以下的内容:
public sub SaveItem_Clicked()
  DoSave()
end sub 

然后在你的按键检查中检查Alt+S等,让它调用DoSave()


1
好的,但是当我的应用程序启动时,它只显示主MDI表单,该表单不支持任何键事件。因此,由于当前运行的MDI没有任何活动子窗体,并且我想要一个快捷方式(例如;Ctrl + N)来在MDI中启动“新建”子窗体。正如您建议的那样,我可以使用Ctrl + S保存对“新建”窗口字段所做的更改,因为该窗体是普通窗体,因此支持键事件,但是如何使仅具有工具栏而没有显示子窗体的MDI表单的快捷方式起作用呢? - Kushal

0

一种方法是使用本地的WH_KEYBOARD钩子,这篇文章解释了如何操作(并提供了一个库)。


非常感谢,这为我的项目带来了新的可能性.... :-) 但是我将在GNU GPL v3下分发我的项目,并且由于我需要将vbalHook6.DLL与应用程序一起部署,我不确定vbaccelerator.com的许可条款是什么。如果我需要在多个许可证下部署我的应用程序,那没问题,因为我肯定会给予各自作者实际的信用。 - Kushal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接