Sergii Krutyi:
Добрый день ,
Подскажите пожа-ста , цепляю программно индикатор на чарт , появляется Диалоговое окно настроек , как нажать кнопку ОК ?
пробовал такой вариант но не нажимает
PostMessageW(hWnd,MessageNumber,15,name2);
кидает сообщение в очередь и тут же возвращается. Т.е. окно ещё не открылось, а вы уже ищете его и нажимаете кнопки. Возможно, лучше всего будет поставить таймер и в нём всё, что ниже этой строки отрабатывать (если hButtonOk не ноль - посылаем сообщение на закрытие и убиваем таймер). Но это вопрос реализации скриптов и индикаторов в четвёрке - в отдельном потоке или нет, я уже не помню.
Вот так индикатор присоединяется:
void StartCustomIndicator(int hWnd,string IndicatorName,bool AutomaticallyAcceptDefaults=true) { uchar name2[]; StringToCharArray(IndicatorName,name2,0,StringLen(IndicatorName)); int MessageNumber=RegisterWindowMessageW("MetaTrader4_Internal_Message"); int r=PostMessageW(hWnd,MessageNumber,15,name2); int hDialogWnd = 0; while (!IsStopped() && !hDialogWnd) { hDialogWnd = FindWindowW(NULL, "Custom Indicator - " + IndicatorName); Sleep(1); } uint uButtonOK = GetDlgItem(hDialogWnd, 1); PostMessageA(hDialogWnd, WM_COMMAND, 1, uButtonOK); //нажимаем кнопку Ok }
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Добрый день ,
Подскажите пожа-ста , цепляю программно индикатор на чарт , появляется Диалоговое окно настроек , как нажать кнопку ОК ?
пробовал такой вариант но не нажимает