Как программно сделать другой график активным? - страница 2 1234 Новый комментарий Aleksandr Chugunov 2010.12.15 13:55 #11 Что-то браузеры сломались... или ещё что-то... WM_ACTIVATE попробуйте. (0x0006) попробовал... или не туда вставлял или не взлетает... есть еще функция ChartClose исключено в виду колоссальных предварительных расчетов. т.е. открытие будет происходить по 3 минуты Господа, хотите покормить юристов? Ещё раз арбитраж, парный Ошибки, баги, вопросы TheXpert 2010.12.15 14:09 #12 Вставляется в PostMessageW Aleksandr Chugunov 2010.12.15 14:12 #13 TheXpert: Вставляется в PostMessageWПробовал... вот эту ветку смотрел: https://www.mql5.com/ru/forum/2051Если Вас не затруднит - может поможете кодом? Буду очень благодарен --- 2010.12.15 14:29 #14 вот еще полезина ChartSetSymbolPeriod Aleksandr Chugunov 2010.12.15 14:42 #15 sergeev: вот еще полезина ChartSetSymbolPeriodЭто только для текущего... у меня сейчас так и сделано...Но нужно сделать по другому --- 2010.12.15 14:58 #16 ChartSetSymbolPeriod( long chart_id, // идентификатор графика string symbol, // имя символа ENUM_TIMEFRAMES period // период ); Aleksandr Chugunov 2010.12.15 15:06 #17 sergeev: ChartSetSymbolPeriod( long chart_id, // идентификатор графика string symbol, // имя символа ENUM_TIMEFRAMES period // период );Мне нужно переключится на другое окно, а не изменить его параметры --- 2010.12.15 15:49 #18 Накидал такой скрипт - ни одна из функций не работает :). #import "user32.dll" int ShowWindow(int hWnd, int nCmdShow); int SetActiveWindow(int hWnd); int SendMessageW(int hWnd,int Msg,int wParam,int lParam); int PostMessageW(int hWnd,int Msg,int wParam,int lParam); #import #define WM_SHOWWINDOW 0x0018 #define SW_MAXIMIZE 3 #define SW_SHOW 5 #define WM_SETFOCUS 0x0007 //------------------------------------------------------------------ void OnStart() { long hWnd=ChartGetInteger(ChartFirst(), CHART_WINDOW_HANDLE); ShowWindow((int)hWnd, SW_MAXIMIZE); SetActiveWindow((int)hWnd); SendMessageW((int)hWnd, WM_SETFOCUS, 0, 0); } //------------------------------------------------------------------ Aleksandr Chugunov 2010.12.15 15:50 #19 Так!Вопрос переформулируется. Как получить дескриптор окна?Вот накидал код и он работает:#import "user32.dll" bool BringWindowToTop(int hWnd); int GetParent(int hWnd); #import void OnStart() { int hwndChart = 1250928; BringWindowToTop(GetParent(hwndChart)); } Aleksandr Chugunov 2010.12.15 15:56 #20 sergeev: Накидал такой скрипт - ни одна из функций не работает :).Ура!long hWnd=ChartGetInteger(ChartFirst(), CHART_WINDOW_HANDLE); Вот этого мне и не хватало! Огромное спасибо и низкий поклон! Всё работает! 1234 Новый комментарий
Что-то браузеры сломались... или ещё что-то...
WM_ACTIVATE попробуйте. (0x0006)
попробовал... или не туда вставлял или не взлетает...
есть еще функция ChartClose
исключено в виду колоссальных предварительных расчетов. т.е. открытие будет происходить по 3 минуты
Вставляется в PostMessageW
Пробовал... вот эту ветку смотрел: https://www.mql5.com/ru/forum/2051
Если Вас не затруднит - может поможете кодом? Буду очень благодарен
вот еще полезина ChartSetSymbolPeriod
Это только для текущего... у меня сейчас так и сделано...
Но нужно сделать по другому
long chart_id, // идентификатор графика
string symbol, // имя символа
ENUM_TIMEFRAMES period // период
);
ChartSetSymbolPeriod(
long chart_id, // идентификатор графика
string symbol, // имя символа
ENUM_TIMEFRAMES period // период
);
Накидал такой скрипт - ни одна из функций не работает :).
Так!
Вопрос переформулируется. Как получить дескриптор окна?
Вот накидал код и он работает:
Накидал такой скрипт - ни одна из функций не работает :).
Ура!
Вот этого мне и не хватало! Огромное спасибо и низкий поклон! Всё работает!