В Классы для создания панелей и диалогов нужно добавить класс для создания меню? - страница 5
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Накидал примерную схему класса Cmenu.
menu bar - список верхнего уровня. menu bar будет отображаться всегда в приложении. menu bar аналог: . menu bar производный от класса CArrayObj.
menu item - пункт меню. Может быть быть просто пунктом меню или выпадающим меню.
PopUpMenu - выпадающее меню. Может содержать несколько menu item. PopUpMenu производный от класса /*edited*/ CWndObj (/*original*/ CArrayObj)
При работе с ресурсами
и
замечена некорректная работа объектов созданных на основе класса CPicture. При удалении динамически созданного ресурса объект на основе класса теряет картинку и отображает только рамку рисунка (оконтовку).
Хотя в справке обозначено:
Функция ResourceFree() позволяет разработчику mql5-программы управлять потреблением памяти при активной работе с ресурсами. Графические объекты, привязанные к удаляемому из памяти ресурсу, будут отображаться правильно и после его удаления.
Может кто уже с таким сталкивался? Пример будет позже.
Прикрепил эксперта. Схема работы:
Хотя в справке обозначено:
Функция ResourceFree() позволяет разработчику mql5-программы управлять потреблением памяти при активной работе с ресурсами. Графические объекты, привязанные к удаляемому из памяти ресурсу, будут отображаться правильно и после его удаления.
Оказывается неправильная работа с ресурсом, который был удален, наблюдается только в классе CPicture. Класс CBmpButton с удаленным ресурсом работает корректно.
Для демонстрации изменил эксперта: теперь в эксперте создаётся один объект на базе класса CPicture (рисунок для него dollar.bmp) и второй объект на базе класса CBmpButton (рисунок для него euro.bmp).
Уточняю схему для меню.
CmenuBar - список меню верхнего уровня. CMenuPopUp - выпадающее меню. CMenuItem - пункт меню. Разделитель - реализации пока нет.
Декларация
Заголовок
#include <Menu\Menu.mqh>
Для примера схема на основании меню Вид терминала MetaTrader5. Обновлённая схема:
Уточняю схему для меню.
CmenuBar - список меню верхнего уровня. CMenuPopUp - выпадающее меню. CMenuItem - пункт меню. Разделитель - реализации пока нет.
Декларация
Заголовок
Для примера схема на основании меню Вид терминала MetaTrader5. Обновлённая схема:
Дык, а какже колбэки?
Ну отрисовать-то можно, но функционал как-то надо весить?
Я, например, в МТ4 встраиваю менюху и в попапы... где-то так:
Все в Winapi, коллбэки там же...
Дык, а какже колбэки?
Ну отрисовать-то можно, но функционал как-то надо весить?
Через кастомные события.
В реализации на mql есть свои преимущества - код подойдет для маркета.
Через кастомные события.
...
Точно. Для каждого пункта меню CMenuItem будет генерироваться пользовательское событие. На основе примера MQL5\Experts\Examples\Controls\ControlsDialog.mqh:
Точно. Для каждого пункта меню CMenuItem будет генерироваться пользовательское событие. На основе примера MQL5\Experts\Examples\Controls\ControlsDialog.mqh:
Круто будет! Поддерживаю задумку