Возможно ли создание графических объектов в МТ4 с помощью dll? - страница 2

 
Seric29:

Если знаете что-то и не будет ущерба вам скажите как работать с графическими объектами кроме mql, если нет то до сих пор не понятно что можно изучать.

Ну так все игрушки состоят из графических объектов. Пишите игрушки и не нужен будет MQL

 
Alexey Viktorov:

Ну так все игрушки состоят из графических объектов. Пишите игрушки и не нужен будет MQL

МТ4 на каких языках написан?

 
Seric29:

Если знаете что-то и не будет ущерба вам скажите как работать с графическими объектами кроме mql, если нет то до сих пор не понятно что можно изучать.

С каким графическими объектами?

 
Dmitry Fedoseev:

С каким графическими объектами?

Ну например создать свою функцию на стороннем языке который будет понимать МТ4, которая допустим нарисует линию, хотя по сути линия это просто соединение 2ух точек но тем не менее это как-то реализовано. Я читал что WinApi32(на нём написан mql4) работает с оконными приложениями, но если углубится то создать окно можно и на С++, может на Си это сложнее но возможно а вот на каком языке построен МТ4 мне не известно.

 

А может быть линия это просто построение точек. Берём 2 точки вычисляем длину, далее вычисляем горизонтальные и вертикальные координаты, далее через цикл получаем их цены заставляем всё точками и получается линия, может быть такое или нет?

Строить через точки тоже можно но тогда взять этот объект будет невозможно потому что он будет построен на точках.

 
Seric29:

Ну например создать свою функцию на стороннем языке который будет понимать МТ4, которая допустим нарисует линию, хотя по сути линия это просто соединение 2ух точек но тем не менее это как-то реализовано. Я читал что WinApi32(на нём написан mql4) работает с оконными приложениями, но если углубится то создать окно можно и на С++, может на Си это сложнее но возможно а вот на каком языке построен МТ4 мне не известно.

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

1. Нельзя лезть со своими объектами в чужое приложение и его окна

2. Терминал умеет отрисовывать сторонние картинки/ресурсы

3. Заводите две картинки - одна back, вторая front (одна будет терминалом рисоваться ниже графика, вторая поверх)

4. Всего-то остаётся придумать разумный протокол c DLL, чтобы синхронизовать ViewPort и привязки к ценам. И вовремя обновлять обе картинки

Это весьма дохрена не самого простого кода. Зато можно будет рисовать например через Cairo

 
Чем не нравится подход: отдать команду из DLL эксперту на отображение рисунка? Рисунок может быть каким угодно. Хоть квадрат Малевича, хоть линия, хоть Мона Лиза.
 
Maxim Kuznetsov:

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

1. Нельзя лезть со своими объектами в чужое приложение и его окна

Но они же реализовали возможность отрисовки линий фигур и т.д. нужно видеть исходный код как это устроено а его как назло нет.

 
Seric29:
Хотелось бы максимально писать программу на с++, поэтому интересует вопрос возможно ли рисовать объекты библиотекой? Что можно по изучать по этому вопросу?
Вам нужно использовать класс CCanvas.
ДЛЛ на C++ можно использовать для повышения производительности расчета заполнения BitMap в MQL4 более чем на порядок. Для этого необходимо передавать в dll-функции по ссылке массив пикселей m_pixels[], заполнять его в dll, а в MQL4 только выполнять функцию Update() класса CCanvas для вывода на экран уже сформированного массива m_pixels
 
Geist:
Вам нужно использовать класс CCanvas.
ДЛЛ на C++ можно использовать для повышения производительности расчета заполнения BitMap в MQL4 более чем на порядок. Для этого необходимо передавать в dll-функции по ссылке массив пикселей m_pixels[], заполнять его в dll, а в MQL4 только выполнять функцию Update() класса CCanvas для вывода на экран уже сформированного массива m_pixels

Это уже интересно. Будет что изучить.

Причина обращения: