Как программно включать режим CROSSHAIR

 
Существует ли возможность программно из советника переключать курсор мыши на CROSSHAIR и обратно?
 
Aleksander Gladkov:
Существует ли возможность программно из советника переключать курсор мыши на CROSSHAIR и обратно?

Попробуйте здесь почитать. В МТ5 есть доступ к АПИ.

Функция SetCursor (winuser.h) - Win32 apps
Функция SetCursor (winuser.h) - Win32 apps
  • 2024.03.04
  • jwmsft
  • learn.microsoft.com
Задает фигуру курсора.
 
Aleksander Gladkov:
Существует ли возможность программно из советника переключать курсор мыши на CROSSHAIR и обратно?
Alexey Volchanskiy #:

Попробуйте здесь почитать. В МТ5 есть доступ к АПИ.

По-моему, он другое имел в виду. В MT5 кнопка "Перекрестие" (Ctrl-F). Это тоже через WinAPI, но управляя кнопками переключения курсора на панели MT5.

 
Alexey Volchanskiy #:

Попробуйте здесь почитать. В МТ5 есть доступ к АПИ.

"В МТ5 есть доступ к АПИ." Спасибо, однако где найти описание этого доступа или пример? Поиск не дал результата
 
Aleksander Gladkov #:
"В МТ5 есть доступ к АПИ." Спасибо, однако где найти описание этого доступа или пример? Поиск не дал результата

1. Посмотреть, как реализовано нажатие на кнопку Старт

2. С помощью Microsoft Spy++ (spyxx.exe) из Visual Studio найти адрес нужной кнопки в MT5.

3. Если заинтересует работа с WinAPI, посмотреть MQL5\Include\WinAPI\

MultiTester
MultiTester
  • www.mql5.com
Множественные прогоны/оптимизации в Тестере.
 
Edgar Akhmadeev #:

1. Посмотреть, как реализовано нажатие на кнопку Старт

2. С помощью Microsoft Spy++ (spyxx.exe) из Visual Studio найти адрес нужной кнопки в MT5.

3. Если заинтересует работа с WinAPI, посмотреть MQL5\Include\WinAPI\

Спасибо, ссылка содержит код, который впечатляет. Хотелось бы обходиться без DLL.

 
#include <fxsaber\MultiTester\MTTester.mqh> // https://www.mql5.com/ru/code/26132

bool SetCrossHair( const bool Enable = true )
{
  return(user32::SendMessageW(MTTESTER::GetTerminalHandle(), WM_COMMAND, 0XCD78 + Enable, 0));
}
 
Edgar Akhmadeev #:

1. Посмотреть, как реализовано нажатие на кнопку Старт

2. С помощью Microsoft Spy++ (spyxx.exe) из Visual Studio найти адрес нужной кнопки в MT5.

3. Если заинтересует работа с WinAPI, посмотреть MQL5\Include\WinAPI\

Aleksander Gladkov #:
Хотелось бы обходиться без DLL.

Увы, никак.

fxsaber #:

Вот ув. fxsaber сделал для Вас то, что я описывал, ссылаясь на его код. Только всё равно ещё нужна соседняя кнопка для отключения перекрестия.

Всё несложно с готовым MTTester.mqh, надо только освоить Spy++, чтобы находить кнопки.

 
Edgar Akhmadeev #:

Только всё равно ещё нужна соседняя кнопка для отключения перекрестия.

SetCrossHair(false);

Функция не нажимает кнопки, а создает соответствующее событие для Терминала.

 
Edgar Akhmadeev #:

надо только освоить Spy++

Настройки, чтобы было меньше мусора при прослушке.

 
fxsaber #:

Функция не нажимает кнопки, а создает соответствующее событие для Терминала.

Спасибо, огромное!

Очень рад что увидел Ваш код. Это просто гениально!

Мне хотелось просто расширить функционал своего советника, а у Вас просто НОВЫЙ уровень работы с терминалом.

Найду время чтобы попробовать разобраться.

Удачи во всем!