Ребят как всё же совместить нажатие ЛКМ и кнопки клавиатуры?
Увидел такое в 1-м индикаторе в мт4, хотел бы узнать как такое сотворил автор?
как уловить одновременное нажатие?
Данный способ не подходит: ТЫК
какие есть еще варианты?
Спасибо
if(TerminalInfoInteger(TERMINAL_KEYSTATE_CONTROL) < 0) if(id == CHARTEVENT_CLICK) { // что нибудь делаем) }
Ctrl+лкм
Хотелось бы чтобы было наоборот, удерживаю лкм и нажимаю cntr далее ...
при таком примере, я нажимаю и удерживаю cntr далее нажимаю лкм у меня показывается и исчезает объект
Хотелось бы чтобы было наоборот, удерживаю лкм и нажимаю cntr далее ...
ChartSetInteger(0, CHART_EVENT_MOUSE_MOVE, true); if(id == CHARTEVENT_MOUSE_MOVE) if(TerminalInfoInteger(TERMINAL_KEYSTATE_CONTROL) < 0) { Print("Тыц"); }
Спасибо за ответ, но не работает!!!
Если зажать лкм и нажать cntr ничего не происходит
Немного не понял зачем тут
CHART_EVENT_MOUSE_MOVE
код что сверху как я понял работает если двигать мышку и зажать контр, а именно нажатие лкм и нажатие контра можно?
Так не бывает вообще нигде.
Можно попробовать так - запоминать имя последнего объекта, который был выделен.
Потом, все действия с клавиатуры выполнять над этим объектом.
Так не бывает вообще нигде.
Можно попробовать так - запоминать имя последнего объекта, который был выделен.
Потом, все действия с клавиатуры выполнять над этим объектом.
Дмитрий и вам спасибо за ответ, индикатор в котором я увидел, сейчас открыл его и протестировал, поднести мышку не на объект а в пустое поле на гарфике, жму лкм(зажимаю) и нажимаю Ё (тильда)
далее!!! ЛКМ не отпускаю, 1-й раз нажал Ё произошло 1 действие, 2- раз нажал Ё ( напомню лкм зажата) произошло 2-е действие, и так далее,
Человек сверху предложил вариант когда нажимаем не ЛКМ + кнопку, а Кнопку + лкм, может всё же можно как то сделать.
Человек в своем индикаторе ведь как то сделал, вопрос как))) Ребят вы больше шарите тут, подскажите как это сделано
Дмитрий и вам спасибо за ответ, индикатор в котором я увидел, сейчас открыл его и протестировал, поднести мышку не на объект а в пустое поле на гарфике, жму лкм(зажимаю) и нажимаю Ё (тильда)
далее!!! ЛКМ не отпускаю, 1-й раз нажал Ё произошло 1 действие, 2- раз нажал Ё ( напомню лкм зажата) произошло 2-е действие, и так далее,
Человек сверху предложил вариант когда нажимаем не ЛКМ + кнопку, а Кнопку + лкм, может всё же можно как то сделать.
Человек в своем индикаторе ведь как то сделал, вопрос как))) Ребят вы больше шарите тут, подскажите как это сделано
int OnInit(){ ChartSetInteger(0,CHART_EVENT_MOUSE_MOVE,true); //--- return(INIT_SUCCEEDED); }
void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { static int wk=false; if(id==CHARTEVENT_MOUSE_MOVE){ if(lparam>=100 && lparam<200 && dparam>=100 && dparam<200){ // квадрат 100 на 100, с отступом 100 от левого верхнего угла if(sparam=="1"){ wk=true; } else{ wk=false; } } } if(wk && id==CHARTEVENT_KEYDOWN){ Comment(GetTickCount()," ",lparam," ",dparam," ",sparam); } }
А индикатор с открытым кодом?
Если нет - мож он вот это использует
https://docs.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-mouse_event
В программах та метаквоты статусы клавиш мышки используют, только нам их не дают, а в винде и на плюсах оно есть.
На сайте точно выкладывалась работа с api клавы, возможно там и api мыши есть.
ну или как я предлагал с таймером
событие мышки запоминаем в таймер
клик клавы - сверяем с таймером - делаем нужное действие.
Но такой вариант какой-то не айс - обычно наоборот клава-мыш.
- 2021.10.13
- jwmsft
- docs.microsoft.com
//+------------------------------------------------------------------+ //| MOUSE_MOVE.mq4 | //| Copyright 2022, MetaQuotes Software Corp. | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "Copyright 2022, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property strict //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- //--- включение сообщений о перемещении мыши по окну чарта ChartSetInteger(0,CHART_EVENT_MOUSE_MOVE,1); //--- отключаем контекстное меню чарта (по правой кнопке) ChartSetInteger(0,CHART_CONTEXT_MENU,0); //--- отключаем перекрестие (по средней кнопке) ChartSetInteger(0,CHART_CROSSHAIR_TOOL,0); //--- принудительное обновление свойств графика гарантирует готовность к обработке событий ChartRedraw(); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- } //+------------------------------------------------------------------+ //| ChartEvent function | //+------------------------------------------------------------------+ void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) { //--- if(id==CHARTEVENT_MOUSE_MOVE) Comment("POINT: ",(int)lparam,",",(int)dparam,"\n",MouseState((uint)sparam)); } //+------------------------------------------------------------------+ //+------------------------------------------------------------------+ //| MouseState | //+------------------------------------------------------------------+ string MouseState(uint state) { string res; res+="\nML: " +(((state& 1)== 1)?"DN":"UP"); // mouse left res+="\nMR: " +(((state& 2)== 2)?"DN":"UP"); // mouse right res+="\nMM: " +(((state&16)==16)?"DN":"UP"); // mouse middle res+="\nMX: " +(((state&32)==32)?"DN":"UP"); // mouse first X key res+="\nMY: " +(((state&64)==64)?"DN":"UP"); // mouse second X key res+="\nSHIFT: "+(((state& 4)== 4)?"DN":"UP"); // shift key res+="\nCTRL: " +(((state& 8)== 8)?"DN":"UP"); // control key return(res); }
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Увидел такое в 1-м индикаторе в мт4, хотел бы узнать как такое сотворил автор?
как уловить одновременное нажатие?
Данный способ не подходит: ТЫК
какие есть еще варианты?
Спасибо