Как узнать размер объекта в пикселях в неактивной вкладке?

 

Координаты x как datetime и y как double получаю. Преобразование  через ChartTimePriceToXY для активной вкладки даёт корректные результаты, для неактивной непонятно что. Попробовал посчитать через CHART_FIXED_MIN/CHART_FIXED_MAX/CHART_HEIGHT_IN_PIXELS и выяснил, что для неактивной вкладки C CHART_HEIGHT_IN_PIXELS даёт постоянно одно число (в моём случае 47),  это видимо размер какого то элемента окна или ещё что то. Если вкладку открепить (вкладка получается своё окно), то результат получаем корректный. Но мне правильный результат необходим во всех случаях.

Как это можно сделать?

 
Nikolay Kuznetsov:

Координаты x как datetime и y как double получаю. Преобразование  через ChartTimePriceToXY для активной вкладки даёт корректные результаты, для неактивной непонятно что. Попробовал посчитать через CHART_FIXED_MIN/CHART_FIXED_MAX/CHART_HEIGHT_IN_PIXELS и выяснил, что для неактивной вкладки C CHART_HEIGHT_IN_PIXELS даёт постоянно одно число (в моём случае 47),  это видимо размер какого то элемента окна или ещё что то. Если вкладку открепить (вкладка получается своё окно), то результат получаем корректный. Но мне правильный результат необходим во всех случаях.

Как это можно сделать?

Как вариант, сохраняйте эти данные, пока вкладка активная в собственный массив структур 
Если эти данные должны меняться в неактивном состоянии, то, думаю в прямую никак, а только через собственное моделирование
 
Nikolai Semko #:
Как вариант, сохраняйте эти данные, пока вкладка активная в собственный массив структур 
Если эти данные должны меняться в неактивном состоянии, то, думаю в прямую никак, а только через собственное моделирование
похоже что так, с сохранением в файлах, чтобы состояние восстанавливалось при перезагрузке терминала
 

через номер подокна и идентификатор графика

https://www.mql5.com/ru/docs/chart_operations/chartgetinteger

Документация по MQL5: Операции с графиками / ChartGetInteger
Документация по MQL5: Операции с графиками / ChartGetInteger
  • www.mql5.com
Возвращает значение соответствующего свойства указанного графика. Свойство графика должно быть типов datetime, int или bool . Существует 2 варианта...
 
Renat Akhtyamov #:

через номер подокна и идентификатор графика

https://www.mql5.com/ru/docs/chart_operations/chartgetinteger

Если бы так просто всё решалось,  то и вопроса бы не было. Вот скриншот с результами вызова этой функции для активной и неактивной вкладки. По моему разумению цифры должны быть одинаковы, но... WinApi впрочем также не помог.


 
Nikolay Kuznetsov #:

Если бы так просто всё решалось,  то и вопроса бы не было. Вот скриншот с результами вызова этой функции для активной и неактивной вкладки. По моему разумению цифры должны быть одинаковы, но... WinApi впрочем также не помог.


Сделайте неактивную вкладку активной, возьмите параметры и верните бывшую активной вкладку в активное состояние
 
Artyom Trishkin #:
Сделайте неактивную вкладку активной, возьмите параметры и верните бывшую активной вкладку в активное состояние

Наверное это будет работать, но решение не очень красивое для случая, если надо одновременно работать с терминалом человеку. Буду пробовать отказываться от графических координат в пользу координат объектов время-цена, и а XY только для активной вкладки.