В моем проекте VB6 я использую только элемент управления панелью инструментов в основном MDI From (Not menubar). Панель инструментов имеет большие изображения, обозначающие действия, такие как New, Save, View, Help и т. Д. Я хотел знать, есть ли способ создать короткую клавиатуру для этих действий. Насколько мне известно, свойства элемента управления панели управления MS Windows Common Controls 6.0 не показывают какой-либо относительной возможности для этого. Поскольку форма MDI не имеет каких-либо ключевых событий, я не могу создавать короткие сокращения, связывая ключи. Мне не нужна панель меню в моей форме, так как у нее очень мало элементов, поэтому работает только панель инструментов. Пожалуйста, предложите любую идею, чтобы иметь короткие сокращения для кнопок панели инструментов ......: - | Спасибо заранее .............Создание коротких сокращений клавиатуры для управления панелью инструментов в VB6
ответ
Один из способов заключается в использовании местного WH_KEYBOARD
крюк, this article объясняет, как (и предоставляет библиотеку).
Добавить ключевое событие в вашу форму. Затем вы можете обработать короткие сокращения, указав их на ту же функцию, которая была бы вызвана в событии mouse down для строки меню.
Например, вы могли бы иметь что-то вроде
public sub SaveItem_Clicked()
DoSave()
end sub
Тогда в чеке нажатие клавиши для Alt + S и т.д., и есть его называют DoSave()
Хорошо, но когда мое приложение начинается, в нем отображается только основная форма MDI, которая не поддерживает какое-либо ключевое событие. Так как текущий MDI не имеет активных дочерних форм, и я хочу короткое сокращение (например, Ctrl + N), чтобы запустить «новую» дочернюю форму в MDI. Как вы предположили, я могу использовать Ctrl + S для сохранения изменений, внесенных в поля окна «Создать», поскольку эта форма является нормальной формой и, следовательно, поддерживает ключевые события, но как я могу получить короткие сокращения, работающие с формой MDI, имеющей только Панель инструментов без отображения дочерних форм ....? – Kushal
Большое спасибо, что дало новые возможности моему проекту .... :-) Но я буду распространять свой проект под GNU GPL v3, и поскольку мне нужно развернуть vbalHook6.DLL вместе с приложением, я не уверен что такое условия лицензии vbaccelerator.com. Хорошо, если мне нужно развернуть мое приложение под несколькими лицензиями, так как я обязательно дам соответствующий кредит соответствующим авторам. – Kushal