Как программно сделать другой график активным? - страница 2

 

Что-то браузеры сломались... или ещё что-то...

WM_ACTIVATE попробуйте. (0x0006)

попробовал... или не туда вставлял или не взлетает...


есть еще функция ChartClose

исключено в виду колоссальных предварительных расчетов. т.е. открытие будет происходить по 3 минуты

 
Вставляется в PostMessageW
 
TheXpert:
Вставляется в PostMessageW

Пробовал... вот эту ветку смотрел: https://www.mql5.com/ru/forum/2051

Если Вас не затруднит - может поможете кодом? Буду очень благодарен

 
вот еще полезина ChartSetSymbolPeriod
 
sergeev:

вот еще полезина ChartSetSymbolPeriod

Это только для текущего... у меня сейчас так и сделано...

Но нужно сделать по другому

 
ChartSetSymbolPeriod(
   long             chart_id,     // идентификатор графика
   string           symbol,       // имя символа
   ENUM_TIMEFRAMES  period        // период
   );
 
sergeev:

ChartSetSymbolPeriod(
   long             chart_id,     // идентификатор графика
   string           symbol,       // имя символа
   ENUM_TIMEFRAMES  period        // период
   );
Мне нужно переключится на другое окно, а не изменить его параметры
 

Накидал такой скрипт - ни одна из функций не работает :).


#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);
}
//------------------------------------------------------------------


 

Так!

Вопрос переформулируется. Как получить дескриптор окна?

Вот накидал код и он работает:

#import "user32.dll"
  bool BringWindowToTop(int hWnd);
  int GetParent(int hWnd);
#import

void OnStart()
  {
   int hwndChart = 1250928;
   BringWindowToTop(GetParent(hwndChart));
  }
 
sergeev:

Накидал такой скрипт - ни одна из функций не работает :).


Ура!

long hWnd=ChartGetInteger(ChartFirst(), CHART_WINDOW_HANDLE);
Вот этого мне и не хватало! Огромное спасибо и низкий поклон! Всё работает!
Причина обращения: