Как определить: отжата или нажата кнопка автопрокрутки и в случае, если она нажата - отжать !? - страница 4
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Если Лео был внимательным, то по ссылке на библиотеку лежит мой WinUser32.mqh. Там все команды есть и функции необходимые. Ничего экспортировать не надо.
33017 - снять/поставить автопрокрутку;
или что-то другое ?
33017 - снять/поставить автопрокрутку;
или что-то другое ?
Берите информацию прямо из источника.
33017 - снять/поставить автопрокрутку;
или что-то другое ?
Я лично так и не понял, в чём проблема использования TB_GETSTATE. О какой ещё активности окна шла речь? Это обычное оконное сообщение, посылаемое контролу, точно так же как например WM_GETTEXT, BM_GETSTATE и т.д. Всегда пользовался этими сообщениями - никаких проблем не возникало. И приложение точно также получает инфу с контролов с помощью этих сообщений.
А активно окно или нет - не имеет никакого значения.
Я лично так и не понял, в чём проблема использования TB_GETSTATE. О какой ещё активности окна шла речь? Это обычное оконное сообщение, посылаемое контролу, точно так же как например WM_GETTEXT, BM_GETSTATE и т.д. Всегда пользовался этими сообщениями - никаких проблем не возникало. И приложение точно также получает инфу с контролов с помощью этих сообщений.
А активно окно или нет - не имеет никакого значения.
Эта панель работает только с активным графиком. Что будет, если за момент до посылки сообщения активность окна изменится? Станет активно другое окно графика. Соответственно, получите положение кнопки для другого окна, а не своего. Как синхронизировать в этом случае активность окна, для которого получаем положение кнопки, с посылаемым сообщением? Если этого не сделать, будет до фига неожиданных ошибок. Даже с DLL это не очевидно.
Проще и надёжнее через свойства графика получить.
Эта панель работает только с активным графиком. Что будет, если за момент до посылки сообщения активность окна изменится? Станет активно другое окно графика. Соответственно, получите положение кнопки для другого окна, а не своего. Как синхронизировать в этом случае активность окна, для которого получаем положение кнопки, с посылаемым сообщением? Если этого не сделать, будет до фига неожиданных ошибок. Даже с DLL это не очевидно.
Проще и надёжнее через свойства графика получить.
Приведите, плз., пример использования (код): как через свойства графика это можно получить ?!
Приведите, плз., пример использования (код): как через свойства графика это можно получить ?!
Дождаться модального диалога.
Найти его.
Найти нужный элемент.
Закрыть модальный диалог.
Ну и вопросы у вас...
Эта панель работает только с активным графиком. Что будет, если за момент до посылки сообщения активность окна изменится? Станет активно другое окно графика. Соответственно, получите положение кнопки для другого окна, а не своего. Как синхронизировать в этом случае активность окна, для которого получаем положение кнопки, с посылаемым сообщением? Если этого не сделать, будет до фига неожиданных ошибок. Даже с DLL это не очевидно.
Проще и надёжнее через свойства графика получить.
Ну можно сначала принудительно активировать требуемый график. А также для надёжности проверить название главного окна терминала. В нём должно содержаться название требуемого графика. Но впрочем я не настаиваю, наверное ваш вариант всё же удобней, т.к. там не потребуется переключать график. Но зато будет мелькать окошко свойств графика :)
Ну можно сначала принудительно активировать требуемый график. А также для надёжности проверить название главного окна терминала. В нём должно содержаться название требуемого графика. Но впрочем я не настаиваю, наверное ваш вариант всё же удобней, т.к. там не потребуется переключать график. Но зато будет мелькать окошко свойств графика :)
Конечно, можно активировать. Но, как синхронизировать? Сбить активность окна может любая программа или сам пользователь в любой момент. Как решить это? Очень неудобный способ.
Да. Окошко мелькает, но очень быстро. Если комп не загружен, то почти незаметно.
Приведите, плз., пример использования (код): как через свойства графика это можно получить ?!
Посмотрите в моём WinUser32.mqh. Там есть коды команд. Можно не искать в Spy. Остальное Вы и так знаете.
Андрей правильно написал:
Имитировать команду на открытие свойств графика.
Дождаться модального диалога.
Найти его.
Найти нужный элемент.
Закрыть модальный диалог.
Ну можно сначала принудительно активировать требуемый график. А также для надёжности проверить название главного окна терминала. В нём должно содержаться название требуемого графика. Но впрочем я не настаиваю, наверное ваш вариант всё же удобней, т.к. там не потребуется переключать график. Но зато будет мелькать окошко свойств графика :)