Можно ли как-нибудь определить, окно распахнуто на максимум или в терминале видно несколько окон?
есть свойство CHART_BRING_TO_TOP - Показ графика поверх всех других
Но оно не подходит, т.к. окна могут быть расположены в виде мозайки и одно из них будет активно
Состояние окон (свёрнуто, распахнуто) - это Windows API и с помощью чистого MQL5 эти состояния окон не получить. А свойство CHART_BRING_TO_TOP отлично работает и при полностью открытых окнах и при частично. Так же можно всегда узнать какое окно является на данный момент активным:
bool var=ChartGetInteger(0,CHART_BRING_TO_TOP,0); // Get property CHART_BRING_TO_TOP // получаем свойство CHART_BRING_TO_TOP if(var) // This vhart active? // Этот график активный? { ... }
А свойство CHART_BRING_TO_TOP отлично работает и при полностью открытых окнах и при частично.
Я разве утверждал обратное? если окна расположены в виде мозайки, тогда толку ни какого нет от этого свойства, мне нужно все окна перерисовывать
А какая проблема? Индикатор на то и индикатор, чтобы следить за изменением цены и отображать эти изменения на экране.
Тяжёлый наверное индикатор, вот и хочет его return`ом завершать на свёрнутом окне.
Хотя можно его так же завершать и на не активном.
Тяжёлый наверное индикатор, вот и хочет его return`ом завершать на свёрнутом окне.
Да
Хотя можно его так же завершать и на не активном.
Можно, но тогда остальные окна обновляться не будут.
Там не расчеты тяжелые, а идет обновления оффлайнового графика, да еще и в ускоренном режиме, когда окон много, нагрузка возрастает на проц, если окно развернуто на весь экран то свойство CHART_BRING_TO_TOP работает отлично, сейчас так и сделано, но иногда нужно и мозайкой окна располагать, на некоторое время, хочется оптимизировать, что бы в холостую не нагружать комп ради стабильной работы в разных режимах расположения окон.
Может быть... но тем не менее работает:
#import "user32.dll" bool GetWindowPlacement(int hWnd,int & lpwndpl[]); int GetWindowLongA(int hWnd,int GWL_STYLE); #import
int m[11]; int p[11]; int h=WindowHandle(Symbol(),Period()); int x=GetWindowLongA(h,-8); bool z=GetWindowPlacement(h,m); z=GetWindowPlacement(x,p); if(m[9]>p[9] || m[10]>p[10]){ Alert("Полное"); } else{ Alert("---"); }
А при расположении мозаикой, допустимо чтобы Ваш индикатор рисовал в одном маленьком окне (так как при мозаике все окошки маленькие) - в окне, которое является активным (активное окно - окно в котором был последний клик)?
Активным я имел ввиду то окно у которого CHART_BRING_TO_TOP == 1
если окна мазайкой, смысла от CHART_BRING_TO_TOP ни какого нету
Активным я имел ввиду то окно у которого CHART_BRING_TO_TOP == 1
если окна мазайкой, смысла от CHART_BRING_TO_TOP ни какого нету
Вы всегда можете определить активное окно:
bool var=ChartGetInteger(0,CHART_BRING_TO_TOP,0); // Get property CHART_BRING_TO_TOP // получаем свойство CHART_BRING_TO_TOP if(var) // This vhart active? // Этот график активный? { ... }

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
есть свойство CHART_BRING_TO_TOP - Показ графика поверх всех других
Но оно не подходит, т.к. окна могут быть расположены в виде мозайки и одно из них будет активно