Заголовок показанный стрелочкой не является заголовком окна и указатель полученный через WindowHandle() не имеет к нему никакого отношения
Заголовок показанный стрелочкой не является заголовком окна и указатель полученный через WindowHandle() не имеет к нему никакого отношения
1. А как тогда получить доступ к этой вкладке?
2. Как получить handle окна с нужным инструментом, для вывода его на передний план.
//////////////////////////////////////////////////////// //= инициализация int Set_Init() { if(g_bInit) return (0); int pn=0; bool pbTesting= false; //--проверка на тестирование---------------------------------------------- int hTerminalWnd, hMDIClientWnd, hMDIActiveWnd, nMaxCount; string sActiveChartName = "определяем системный дескриптор основного окна терминала определяем системный дескриптор основного окна терминала"; //---- определяем системный дескриптор основного окна терминала hTerminalWnd = GetAncestor(WindowHandle(Symbol(), Period()), 2); //---- определяем системный дескриптор активного окна hMDIClientWnd = GetDlgItem(hTerminalWnd, 0xE900); hMDIActiveWnd = SendMessageA(hMDIClientWnd, 0x0229, 0, 0); //---- считываем текст из заголовка активного окна nMaxCount = GetWindowTextLengthA(hMDIActiveWnd); if(nMaxCount>1) { pn=GetWindowTextA(hMDIActiveWnd, sActiveChartName, nMaxCount+1); if(pn>1) { int pPos=0; int pPos2= StringFind(sActiveChartName,"visual",0); if(pPos2 > -1) pbTesting= true; } } //тестирование g_bTesting= pbTesting; g_bInit= true; return (pn); } //------------------------------------------------мож GetDlgItem нужно использовать!? али ещё что!?
И так, чего получилось...
Добрался до handle окона с нужной парой, однако мигать вкладки не получилось. Видимо они имеют другой handle. Трудность в поиске по заголовку окна - вкладки и окна имеют одинаковые заголовки. Функция FlashWindow() молча проглатила отданный ей handle и промолчала.
Получился индикатор, привлекающий внимание пользователя при движении цены выше или ниже определенной линии, при этом линию можно подвинуть, тем самым сменив настройки индикатора. Привлечение происходит звуковым сигналом, большим восклицательным знаком на графике и выводом окна графика на передний план (по желанию пользователя).
Теперь к настройкам:
1. Больше - булевое значение. True - индикатор сработает при цене выше линии индикатора. False - при цене ниже линии индикатора.
2. ОтображатьГрафик - булевое значение. True - индикатор отобразит окно графика где он сработал. False - не будет отображать. Для работы этого параметра необходимо включить в настройках терминала возможность подключения внешних DLL.
3. ЗвуковойФайл - строка, содержащая имя файла, который проиграет инжикатор при срабатывании. Имя файла указывается без разширения (hark = hark.wav).
4. ЦветЛинии - цвет линии индикатора.
5. ИмяИндикатора - прибавка к именам глобальных переменных служит для идентификации различных индикаторов. Однако, требуется только при количестве от трех штук на одном графике. Как правило хватает двух индикаторов для формирования коридора, при выходе из которого необходимо привлечь внимание пользователя. При пустом поле ИмяИндикатора его значение принимается в зависимости от параметра Больше.
Примечание: Замечательно было бы включить в настройках графика отображение описания объектов, тогда линии индикатора будут подписаны для наглядности.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Задача следующая: При возникновении какого-либо события, индикатор должен привлечь внимание пользователя к окну с инструментом на котором он загружен (Оранжевая стрелка показывыает на заголовок окна который должен мигать).
Заголовки окон
Думаю решить таким образом:
Все вроде бы должно работать и компилируется без ошибок, но НЕ МИГАЕТ! В чем проблема, помогите разобраться.