Как определить цвет фона у терминала? - страница 2 123 Новый комментарий Slava 2007.09.07 10:24 #11 banderass: xeon Mathemat Да, жаль, что такого свойства еще нет (OBJPROP_BACKGROUND). Решение с файлами не подходит, так как не является универсальным. Может разработчики что-то посоветуют? Попробуйте воспользоваться функциями из WinAPI #import "user32.dll" int GetDC(int hwnd); int ReleaseDC(int hwnd,int hdc); color GetPixel(int hdc,int x,int y); #import ... int hwnd=WindowHandle(Symbol(),Period()); int hdc=GetDC(hwnd); color back_ground=GetPixel(hdc,2,2); ReleaseDC(hwnd,hdc); Dmitry Fedoseev 2007.09.07 10:55 #12 Исправлено Файлы: getpixel_2.zip 2 kb Slava 2007.09.07 10:56 #13 Integer: ... Надо обязательно освобождать контекст устройства! Функция ReleaseDC Igor Malcev 2007.09.07 11:07 #14 итоговый блок кода (рабочий) для определения цвета фона от (stringo+integer) #import "user32.dll" int GetDC(int hwnd); int ReleaseDC(int hwnd,int hdc); #import "gdi32.dll" color GetPixel(int hdc,int x,int y); #import int start(){ int hwnd=WindowHandle(Symbol(),Period()); int hdc=GetDC(hwnd); color back_ground=GetPixel(hdc,1,2); ReleaseDC(hwnd,hdc); Print("Цвет фона "+back_ground); return(0); } [Deleted] 2007.09.07 11:11 #15 stringo Integer Что-то у меня не получается, пробую впихнуть в индикатор, подскажите где ошибка: //+------------------------------------------------------------------+ //| j003.mq4 | //| Copyright © 2007, Antonuk Oleg | //| banderass@i.ua | //+------------------------------------------------------------------+ #property copyright "Copyright © 2007, Antonuk Oleg" #property link "banderass@i.ua" #property indicator_separate_window #property indicator_buffers 5 #property indicator_color1 Yellow #property indicator_color2 Green #property indicator_color3 Yellow #property indicator_color4 Green #property indicator_color5 Gray #import "user32.dll" int GetDC(int hwnd); int ReleaseDC(int hwnd,int hdc); color GetPixel(int hdc,int x,int y); #import //---- buffers double ExtMapBuffer1[]; double ExtMapBuffer2[]; double ExtMapBuffer3[]; double ExtMapBuffer4[]; double ExtMapBuffer5[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators int hwnd=WindowHandle(Symbol(),Period()); int hdc=GetDC(hwnd); color back_ground=GetPixel(hdc,2,2); ReleaseDC(hwnd,hdc); SetIndexStyle(0,DRAW_LINE); SetIndexStyle(1,DRAW_LINE); SetIndexStyle(2,DRAW_HISTOGRAM); SetIndexStyle(3,DRAW_HISTOGRAM); SetIndexStyle(4,DRAW_HISTOGRAM,STYLE_SOLID,2,back_ground); SetIndexBuffer(0,ExtMapBuffer1); SetIndexBuffer(1,ExtMapBuffer2); SetIndexBuffer(2,ExtMapBuffer3); SetIndexBuffer(3,ExtMapBuffer4); SetIndexBuffer(4,ExtMapBuffer5); IndicatorShortName("justTest"); int windowIndex=WindowFind("justTest"); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int limit; int counted_bars=IndicatorCounted(); //---- последний посчитанный бар будет пересчитан if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; //---- основной цикл for(int i=0; i<limit; i++) { ExtMapBuffer1[i]=iMA(NULL,0,13,8,MODE_SMMA,PRICE_MEDIAN,i); ExtMapBuffer2[i]=iMA(NULL,0,8,2,MODE_SMMA,PRICE_MEDIAN,i); if(ExtMapBuffer1[i]>ExtMapBuffer2[i]) ExtMapBuffer3[i]=ExtMapBuffer1[i]; else ExtMapBuffer4[i]=ExtMapBuffer2[i]; ExtMapBuffer5[i]=MathMin(ExtMapBuffer1[i],ExtMapBuffer2[i]); } //---- return(0); } //+------------------------------------------------------------------+ Файлы: j005.mq4 3 kb [Deleted] 2007.09.07 11:13 #16 xeon не увидел ваш пост Dmitry Fedoseev 2007.09.07 11:18 #17 Функция GetPixel() импортируется из gdi32.dll [Deleted] 2007.09.07 11:24 #18 Integer поменял уже как выше написано, так теперь вообще индикатор ничего не рисует (( где же ошибка? Файлы: j005_1.mq4 3 kb Igor Malcev 2007.09.07 11:34 #19 banderass: Integer поменял уже как выше написано, так теперь вообще индикатор ничего не рисует (( где же ошибка? (hdc,1,2); здесь по адресу 2.2 находится текст :-) [Deleted] 2007.09.07 12:33 #20 xeon пробывал и так и так, никакой разницы ( 123 Новый комментарий
xeon
Mathemat
Да, жаль, что такого свойства еще нет (OBJPROP_BACKGROUND). Решение с файлами не подходит, так как не является универсальным.
Может разработчики что-то посоветуют?
Попробуйте воспользоваться функциями из WinAPI
Исправлено
...
Надо обязательно освобождать контекст устройства! Функция ReleaseDC
итоговый блок кода (рабочий) для определения цвета фона от (stringo+integer)
Integer
Что-то у меня не получается, пробую впихнуть в индикатор, подскажите где ошибка:
не увидел ваш пост
Функция GetPixel() импортируется из gdi32.dll
поменял уже как выше написано, так теперь вообще индикатор ничего не рисует ((
где же ошибка?
Integer
поменял уже как выше написано, так теперь вообще индикатор ничего не рисует ((
где же ошибка?
(hdc,1,2); здесь по адресу 2.2 находится текст :-)
пробывал и так и так, никакой разницы (