Всем привет.
Хотел сделать простой контроллер для индикатора в виде кнопки или чекбокса. Нашел в стандартной библиотеке классы CButton и CCheckbox и попытался их использовать. И кнопка и чекбокс нормально отрисовываются прям на графике, но почему-то не реагируют на события OnMouseDown (кнопка) и OnClickButton/OnClickLabel.
Вопрос, что я делаю не так?
Делаю примерно так:
То что вы нашли, это новость для меня. Я даже не подозревал, что в MQL5 можно будет использовать классы, как в MFC, Visual C++.
Я например для этого использую:
ObjectCreate(0,"XXXXXX",OBJ_BUTTON,0,0,0);
void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam)
barabashkakvn:
Я забыл сказать, что ваш тест я выполнил.
OnClickButton - это защищённый метод родительского класса. Вот код из CheckBox.mqh:
//--- methods for working with files virtual bool Save(const int file_handle); virtual bool Load(const int file_handle); protected: //--- create dependent controls virtual bool CreateButton(void); virtual bool CreateLabel(void); //--- handlers of the dependent controls events virtual bool OnClickButton(void); virtual bool OnClickLabel(void); }; //+------------------------------------------------------------------+ //| Common handler of chart events | //+------------------------------------------------------------------+
OnClickButton - это защищённый метод родительского класса. Вот код из CheckBox.mqh:
Ага, точно! Спасибо, я что-то не обратил внимание. Значит, это вообще как-то иначе делается.
Я сейчас нашел способ обработки событий через OnChartEvent() и в случае с моим примером это будет выглядеть как-то так:
void OnChartEvent(const int id, const long& lparam, const double& dparam, const string& sparam) { if(id == CHARTEVENT_OBJECT_CLICK && sparam == "Checkbox testButton") { // Тут какой-то код } }
Но я все-таки не понимаю, зачем тогда нужны эти обработчики OnClickButton() и OnClickLabel() и как их использовать.
- www.mql5.com
Не пробовал переопределись метод OnClickButton в своем объекте?
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Всем привет.
Хотел сделать простой контроллер для индикатора в виде кнопки или чекбокса. Нашел в стандартной библиотеке классы CButton и CCheckbox и попытался их использовать. И кнопка и чекбокс нормально отрисовываются прям на графике, но почему-то не реагируют на события OnMouseDown (кнопка) и OnClickButton/OnClickLabel.
Вопрос, что я делаю не так?
Делаю примерно так: