Как отключить масштабирование графика с помощью колесика мыши при нажатой Control

 

Доброго времени суток!

Как можно в коде отключить масштабирование графика с помощью колесика мыши при нажатой Control?

 
А зачем?
 
Vitaly Murlenko #:
А зачем?
Для панелей, например. 
 

CHART_KEYBOARD_CONTROL

Разрешение на управление графиком с помощью клавиатуры ("Home", "End", "PageUp", "+", "-", "Стрелка вверх"  и т.д.). Установка CHART_KEYBOARD_CONTROL=false позволяет отключить скроллинг и масштабирование графика, но при этом сохраняется возможность получать события нажатия данных клавиш в OnChartEvent().

bool


Это не поможет? Мне лениво проверять, занят другими проблемами…

Документация по MQL5: Обработка событий / OnChartEvent
Документация по MQL5: Обработка событий / OnChartEvent
  • www.mql5.com
Вызывается в экспертах и индикаторах при наступлении события ChartEvent . Функция предназначена для обработки изменений графика, вызванных...
 
Alexey Viktorov #:

CHART_KEYBOARD_CONTROL

Разрешение на управление графиком с помощью клавиатуры ("Home", "End", "PageUp", "+", "-", "Стрелка вверх"  и т.д.). Установка CHART_KEYBOARD_CONTROL=false позволяет отключить скроллинг и масштабирование графика, но при этом сохраняется возможность получать события нажатия данных клавиш в OnChartEvent().

bool


Это не поможет? Мне лениво проверять, занят другими проблемами…

Проверил. Не отключает масштабирование графика.

 
Artyom Trishkin #:

Проверил. Не отключает масштабирование графика.

Обидно, однако…

 

Решил так

void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
   static bool control_pressed = false;
   static int chart_scale = {};
   if(TerminalInfoInteger(TERMINAL_KEYSTATE_CONTROL) == -128)
     {
      if(!control_pressed)
        {
         control_pressed = true;
         chart_scale = ChartGetInteger(0, CHART_SCALE);
        }
      else
         ChartSetInteger(0, CHART_SCALE, chart_scale);
     }
   else
      control_pressed = false;
   ChartRedraw(0);
  }
Vitaly Murlenko #:
А зачем?

Я на это сочетание другой функционал хочу повесить. У меня сетка ордеров будет раздвигаться/сужаться. Shift + Scroll тоже занят

 
Не могу однако теперь решить проблему с подмигиванием экрана
 
Anton Iaroshenko #:
Не могу однако теперь решить проблему с подмигиванием экрана
ChartRedraw(0);

Слишком часто вызываете

 
Vladimir Pastushak #:

Слишком часто вызываете

Ситуация: МТ5, голый график, открыта 1 валютная пара. На интервале Н1 нанёс линию тренда. Переключился на W1. График моргал минуты полторы. Что-то подгружалось. При этом ни 1 советник, ни 1 индикатор или скрипт не были запущены. В МТ4 такого бага нет.