События клавиатуры в MetaTrader обрабатываются с помощью функции OnChartEvent. 13 Она является обработчиком группы событий ChartEvent, в том числе события нажатия клавиатуры. 4
Для события нажатия клавиатуры (CHARTEVENT_KEYDOWN) в параметрах функции содержится следующая информация: 14
- lparam — код нажатой клавиши; 14
- dparam — количество нажатий клавиши, сгенерированных за время её удержания в нажатом состоянии; 14
- sparam — битовая маска, описывающая статус клавиш клавиатуры, преобразованная в строку. 1
В обработчике OnChartEvent для событий CHARTEVENT_KEYDOWN вызывается функция TranslateKey, чтобы получить допустимый символ Unicode. 1 Если это удаётся, символ добавляется в строку сообщения, которое выводится в комментарии графика. 1
В версии MetaTrader 5 build 4260 (март 2024) была расширена поддержка событий клавиатуры: 2
- Добавлено событие CHARTEVENT_KEYUP для обработчика OnChartEvent, которое позволяет отслеживать, когда пользователь отпускает клавишу на клавиатуре. 2
- Добавлена обработка «Мёртвых» клавиш (Dead keys) — это клавиши, позволяющие изменить вид следующего вводимого символа. 2
- Доработаны функции TranslateKey и TerminalInfoInteger, чтобы при получении событий CHARTEVENTKEYUP или CHARTEVENTKEYDOWN в OnChartEvent можно было получить полное состояние клавиатуры на момент возникновения события. 2