Скачать MetaTrader 5
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Не можешь найти ответ на вопрос? Воспользуйся поиском!
khorosh
8048
khorosh 2016.02.18 14:02 
Есть у меня одно небольшое окно графика, которое я использую как информационное табло. Хочу, чтобы оно всегда было поверх остальных окон. Вставляю в шаблон индикатора команду ChartSetInteger(0,CHART_BRING_TO_TOP,true); и вешаю индикатор на график этого табло. По каждому тику это окно вылазит наружу. Однако это мешает работе с другими графиками. Например, открываю контекстное меню другого графика, но по приходу тика на график табло окно контекстного меню тут же закрывается. Что посоветуете?
Igor Volodin
3569
Igor Volodin 2016.02.18 17:11  
khorosh:
Есть у меня одно небольшое окно графика, которое я использую как информационное табло. Хочу, чтобы оно всегда было поверх остальных окон. Вставляю в шаблон индикатора команду ChartSetInteger(0,CHART_BRING_TO_TOP,true); и вешаю индикатор на график этого табло. По каждому тику это окно вылазит наружу. Однако это мешает работе с другими графиками. Например, открываю контекстное меню другого графика, но по приходу тика на график табло окно контекстного меню тут же закрывается. Что посоветуете?
Делать bringtotop по наведению
khorosh
8048
khorosh 2016.02.18 18:35  
Igor Volodin:
Делать bringtotop по наведению
А  как это, ссылку не можете дать, где почитать?
Artyom Trishkin
69053
Artyom Trishkin 2016.02.18 19:45  
khorosh:
А  как это, ссылку не можете дать, где почитать?
Для большего понимания - CHART_BRING_TO_TOP делает этот график активным. Соответственно, с каждым тиком он перетягивает фокус на себя.
khorosh
8048
khorosh 2016.02.18 20:22  
Artyom Trishkin:
Для большего понимания - CHART_BRING_TO_TOP делает этот график активным. Соответственно, с каждым тиком он перетягивает фокус на себя.
Это я понял. Меня интересует может ли быть окно графика неактивным и быть поверх других окон. К примеру как окно котировок.
Igor Volodin
3569
Igor Volodin 2016.02.19 06:39  
khorosh:
А  как это, ссылку не можете дать, где почитать?
пример из справки:
//+------------------------------------------------------------------+ 
//| Expert initialization function                                   | 
//+------------------------------------------------------------------+ 
void OnInit() 
  { 
//--- включение сообщений о перемещении мыши по окну чарта 
   ChartSetInteger(0,CHART_EVENT_MOUSE_MOVE,1); 
  } 
//+------------------------------------------------------------------+ 
//| 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); 
  } 
//+------------------------------------------------------------------+ 
//| 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)); 

//вот тут проверяете принадлежность координат курсора к области, а также уход из нее и реализуете нужное поведение


  }
khorosh
8048
khorosh 2016.02.19 14:41  
Igor Volodin:
пример из справки:
Спасибо, но как пользоваться функцией OnChartEvent я знаю. Меня интересует как сделать окно графика, чтобы оно было поверх всех остальных графиков и было неактивным.
/
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий