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

 
jartmailru >>:

А мы уже, выходит, на ты... фигасе...

Спасибо что объяснил по заготовке. А по поводу ты (вы) что какие то проблемы? Или мы настолько высокомерны? Я вроде не грубил. Стандартное обращение you. Даже с английского. :) 

P.S. Странный народ.... вроде форум, свободное общение. Че понтоваться то. :) 

 
Sergey3912 >>:

Спасибо что объяснил по заготовке. А по поводу ты (вы) что какие то проблемы? Или мы настолько высокомерны? Я вроде не грубил. Стандартное обращение you. Даже с английского. :) 

P.S. Странный народ.... вроде форум, свободное общение. Че понтоваться то. :) 

Я к тебе пафосно - Вы... с Вашего позволения... а ты сразу раз и ты!

А наши, кстати, You ухитряются с большой буквы писать- сам писал :-).
 
Sergey3912 >>:


Список берется из текстового файла. Спасибо за ссылки. Разбираюсь.

Ну если из текстового, то придется еще в дополнительный массив получить списочек инструментов из файла symbols.raw (ссылка №2), потом найти соответствие Вашего символа с символом из этого массива и индекс из массива передать в функцию OpenChart(int Num) из ссылки №1. Новый график и откроется.

 
Sergey3912 писал(а) >>

Спасибо что объяснил по заготовке. А по поводу ты (вы) что какие то проблемы? Или мы настолько высокомерны? Я вроде не грубил. Стандартное обращение you. Даже с английского. :)

P.S. Странный народ.... вроде форум, свободное общение. Че понтоваться то. :)

Так ведь на форуме не только школьники сидят!

 

А если нужно открыть программно график offline, которого нет в списке???

Может кто помочь с кодом?

 

Библиотеку выложил вчера для управления МТ4. Может в понедельник в копилке появится.

Там есть функция для открытия графиков и другое не менее важное. 

 
FX_EXPERT:

А если нужно открыть программно график offline, которого нет в списке???

Может кто помочь с кодом?

Я думаю, на С++ надо писать. Сделать можно.
 

https://www.mql5.com/ru/forum/120518/page2

так открывает? 

ЗЫ: на Delpi быстрее можно написать чем на Си++ :) 

 
IgorM:

https://www.mql5.com/ru/forum/120518/page2

так открывает? 

ЗЫ: на Delpi быстрее можно написать чем на Си++ :) 

1.
Да, так- код шлется- окошко открывается.
Только потом это окошко надо поймать, найти кнопку ок
и в списке по тексту найти нужный элемент.
По-моему для mql неподъемно.
  И на плюсах по списку в разы быстрее выбрать нужную строку.
.
2.
То, что быстрее- сомневаюсь.
Тем более, что я пишу что-то типа
windows = CMetaTrader::FindWindowsOfMetaTrader();
modal = CWindows::FindByClass(windows, какой-то там класс);
и т.п.

 

jartmailru:

Вроде, несложно:

#import "user32.dll"
  int PostMessageA( int hWnd, int Msg, int wParam, int lParam );
  int GetAncestor( int hWnd, int gaFlags );
  int GetLastActivePopup( int hWnd );
  int GetDlgItem( int hDlg, int nIDDlgItem );
#import

#define WM_COMMAND 0x0111
#define WM_KEYDOWN 0x0100
#define VK_DOWN 0x28
#define BM_CLICK 0x00F5
#define GA_ROOT 2

#define PAUSE 100

// Открывает список Offline-графиков. Возвращает хэндл окна списка.
int OpenOfflineList()
{
 int hwnd = WindowHandle(Symbol(), Period());
 
 hwnd = GetAncestor(hwnd, GA_ROOT);
 
 PostMessageA(hwnd, WM_COMMAND, 33053, 0);
 Sleep(PAUSE);
 
 hwnd = GetLastActivePopup(hwnd);
 
 return(hwnd);
}

// Открывает Offline-график по номеру в списке
void OpenOfflineChart( int NumChart )
{
  int hwnd1 = OpenOfflineList();
  int hwnd2 = GetDlgItem(hwnd1, 1);
  
  hwnd1 = GetDlgItem(hwnd1, 0x487);
  
  while (NumChart >= 0)
  {
    PostMessageA(hwnd1, WM_KEYDOWN, VK_DOWN, 0);
    
    NumChart--;
  }
  
  Sleep(PAUSE);
  
  PostMessageA(hwnd2, BM_CLICK, 0, 0);

  return;
}

void start()
{
  OpenOfflineChart(0);
  
  return;
} 
Причина обращения: