Скачать MetaTrader 5

CHARTEVENT_KEYDOWN

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Ruslan Khasanov
3089
Ruslan Khasanov  
Собственно возник вопрос - Как отловить нажатие комбинации клавиш? Например CTRL + C и т.п., используя обработчик OnChartEvent(....)
o_o
Модератор
24181
o_o  

выведите в коментарий sparam и lparam

и посмотрите какие у них значения при нажатии Ctrl 

Событие

Значение параметра id

Значение параметра lparam

Значение параметра dparam

Значение параметра sparam

Событие нажатия клавиатуры

CHARTEVENT_KEYDOWN

Код нажатой клавиши

Количество нажатий клавиши,сгенерированных за время её удержания в нажатом состоянии

Строковое значение битовой маски, описывающее статус кнопок клавиатуры

Ruslan Khasanov
3089
Ruslan Khasanov  
sergeev:

выведите в коментарий sparam и lparam

и посмотрите какие у них значения при нажатии Ctrl 

  Это первое что я сделал,но отлавливается только одна клавиша из комбинации

 спасибо за совет

o_o
Модератор
24181
o_o  
тогда почитайте из winapi GetKeyState
Ruslan Khasanov
3089
Ruslan Khasanov  
sergeev:
тогда почитайте из winapi GetKeyState
Благодарю, я тоже пришел к выводу, что без WinApi здесь не обойтись...
barok2
9
barok2  
Когда держишь кнопку Ctrl, генерируются   CHARTEVENT_KEYDOWN   id= 17, если не отрываясь нажать клавишу 1(к примеру), то появляется значение 49. Вот этот переход с 17 на 49 и надо отловить.
Ilyas
1204
Ilyas  
В терминал добавлена возможность получения состояния клавиши CTRL, но пока этот функционал не документирован:

bool IsCtrlPressed()
  {
   return((TerminalInfoInteger((ENUM_TERMINAL_INFO_INTEGER)1017)&0x80)!=0);
  }

Alexander Puzanov
33351
Alexander Puzanov  
Ilyas:
В терминал добавлена возможность получения состояния клавиши CTRL, но пока этот функционал не документирован:

bool IsCtrlPressed()
  {
   return((TerminalInfoInteger((ENUM_TERMINAL_INFO_INTEGER)1017)&0x80)!=0);
  }

И в MT4 работает. Спасибо, актуальное дополнение
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий