Использование свойства CHART_BRING_TO_TOP

 
Есть у меня одно небольшое окно графика, которое я использую как информационное табло. Хочу, чтобы оно всегда было поверх остальных окон. Вставляю в шаблон индикатора команду ChartSetInteger(0,CHART_BRING_TO_TOP,true); и вешаю индикатор на график этого табло. По каждому тику это окно вылазит наружу. Однако это мешает работе с другими графиками. Например, открываю контекстное меню другого графика, но по приходу тика на график табло окно контекстного меню тут же закрывается. Что посоветуете?
 
khorosh:
Есть у меня одно небольшое окно графика, которое я использую как информационное табло. Хочу, чтобы оно всегда было поверх остальных окон. Вставляю в шаблон индикатора команду ChartSetInteger(0,CHART_BRING_TO_TOP,true); и вешаю индикатор на график этого табло. По каждому тику это окно вылазит наружу. Однако это мешает работе с другими графиками. Например, открываю контекстное меню другого графика, но по приходу тика на график табло окно контекстного меню тут же закрывается. Что посоветуете?
Делать bringtotop по наведению
 
Igor Volodin:
Делать bringtotop по наведению
А  как это, ссылку не можете дать, где почитать?
 
khorosh:
А  как это, ссылку не можете дать, где почитать?
Для большего понимания - CHART_BRING_TO_TOP делает этот график активным. Соответственно, с каждым тиком он перетягивает фокус на себя.
 
Artyom Trishkin:
Для большего понимания - CHART_BRING_TO_TOP делает этот график активным. Соответственно, с каждым тиком он перетягивает фокус на себя.
Это я понял. Меня интересует может ли быть окно графика неактивным и быть поверх других окон. К примеру как окно котировок.
 
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)); 

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


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