Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Опубликована статья Графические интерфейсы IV: Многооконный режим и система приоритетов (Глава 2):
В этой статье мы расширим реализацию библиотеки до возможности создавать многооконные интерфейсы для своих MQL-приложений. Кроме этого, разработаем систему приоритетов на нажатие левой кнопкой мыши на графических объектах. Это нужно, чтобы не столкнуться с проблемами, когда элементы управления неожиданно не отвечают на действия пользователя.
Многооконный режим
Рассмотрим многооконный режим графического интерфейса разрабатываемой библиотеки. До сих пор в перечислении ENUM_WINDOW_TYPE было предусмотрено два идентификатора для главного (W_MAIN) и диалогового (W_DIALOG) окна. Использовался только один режим, то есть, режим одного окна. Ниже мы внесем дополнения, после чего для включения многооконного режима достаточно будет просто создать и добавить в базу нужное количество форм для элементов управления.
В главном классе обработки событий CWndEvents нужно создать поле для сохранения индекса текущего активного окна:
Давайте разберёмся, как будет определяться индекс активного окна. Например, пользователь назначил какой-нибудь кнопке открытие диалогового окна (W_DIALOG). Когда кнопка нажимается, генерируется пользовательское событие ON_CLICK_BUTTON, которое можно отследить в обработчике событий CProgram::OnEvent() пользовательского класса. Здесь же используем метод CWindow::Show() той формы, которую нужно показать. В текущей реализации библиотеки этого будет недостаточно, поэтому далее внесём необходимые дополнения.
Автор: Anatoli Kazharski