Обсуждение статьи "Как создать графическую панель любой сложности и как это работает" - страница 11

 
Vladimir Karputov:

Нужно чтобы все элементы панели были перерисованы - таким образом они займут самое "верхнее" положение.

Ясно, спасибо! А есть ли у класса CAppDialog встроенный метод перерисовки всех элементов? Если нет, будет ли правильной такая реализация у класса-наследника:

void CControlsDialog::Redraw(void)
  {
   this.Visible(false);
   this.Visible(true);
  }

На практике это работает, я проверил.

 
Janis Ozols:

Ясно, спасибо! А есть ли у класса CAppDialog встроенный метод перерисовки всех элементов? Если нет, будет ли правильной такая реализация у класса-наследника:

На практике это работает, я проверил.

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

 
Janis Ozols:

Ясно, спасибо! А есть ли у класса CAppDialog встроенный метод перерисовки всех элементов? Если нет, будет ли правильной такая реализация у класса-наследника:

На практике это работает, я проверил.

Насколько помню, метод Run() перерисовывает график.
 
Vasiliy Pushkaryov:
Насколько помню, метод Run() перерисовывает график.

Да, он перерисовывает график. Спасибо, попробую!

bool CAppDialog::Run(void)
  {
//--- redraw chart for dialog invalidate
   m_chart.Redraw();
//--- here we begin to assign IDs to controls
   if(Id(m_subwin*CONTROLS_MAXIMUM_ID)>CONTROLS_MAXIMUM_ID)
     {
      Print("CAppDialog: too many objects");
      return(false);
     }
//--- succeed
   return(true);
  }

UPD: Попробовал. Увы, не помогло. Видимо, этот метод перерисовывет сам график, но не панель. 
 

Всем привет

Во-первых, спасибо Владимиру Карпутову за то, что поделился этой статьей.

Я новичок в разработке панели для начинающих.

Я хочу уточнить, можно ли открепить эту панель, как график.

Если да, то где я могу найти этот метод? Спасибо.

Vladimir Karputov
Vladimir Karputov
  • 2021.09.01
  • www.mql5.com
Trader's profile
 
Quan tum # :

***

Я хочу подтвердить, можно ли открепить эту панель, как график.

Если да, то где я могу найти этот метод? Спасибо.

Я не понимаю.

 
Vladimir Karputov #:

Я не понимаю.

В MT5 мы можем нажать правую кнопку мыши на графике, и мы увидим "пристыкованный". (во вложении)

Если мы нажмем на нее, то окно графика выйдет за пределы независимой платформы. Это означает, что окно не пристыковано.

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

Файлы:
 
Quan tum # :

В MT5 мы можем нажать правую кнопку мыши на графике, и мы увидим "пристыкованный". (во вложении)

Если мы нажмем на нее, окно графика выйдет за пределы независимой платформы. Это означает, что окно графика не пристыковано.

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

Вы сами ответили на свой вопрос: Вы сами выбираете меню для текущего окна графика. Какое отношение к этому имеет панель?

 
Vladimir Karputov #:

Вы сами ответили на свой вопрос: Вы сами выбираете меню для окна текущей диаграммы. Какое отношение к этому имеет панель?

Извините, возможно, я неправильно вас понял.
Я имел в виду, можно ли открепить панель от графика.
 
Quan tum # :
Извините, возможно, я неправильно вас понял.
Я имею в виду, можно ли отсоединить панель за пределами графика.

Это запрещено. Панель привязана к графику.