Закрытие панели - страница 2

 
Dima_S:
А Show/Hide не помогает?

Всё помогает, но дело не в том как сделать невидимой, а в том,

чтобы отследить, что мышка кликнула на крестик панели.

 
Mikalas:

Всё помогает, но дело не в том как сделать невидимой, а в том,

чтобы отследить, что мышка кликнула на крестик панели.

1. Крестик отдельным объектом?

2. Координаты крестика?

 
artmedia70:

1. Крестик отдельным объектом?

2. Координаты крестика?

Спасибо. Отличная мысль - наложить на крестик свою кнопку!

Ещё раз спасибо.

P/S Жаль, что в библиотеке крести не доступен. 

 
Mikalas:

Да.

#include              <Controls\Dialog.mqh> 

CDialog               EnterDialog;  

К сожалению не смогу точно подсказать, так как использую свою библиотеку.

Посмотрел CDialog. В нём есть метод OnClickButtonClose, который передаётся в карту событий на обработку в базовый класс CWndContainer, у которого есть метод Destroy().

 
Mikalas:

Спасибо. Отличная мысль - наложить на крестик свою кнопку!

Ещё раз спасибо.

P/S Жаль, что в библиотеке крести не доступен. 

Он как бы доступен, но придётся более глубоко изучить структуру классов стандартной библиотеки для создания панелей.

Если нужно вносить какие-то изменения, то лучше сделать копию и уже с ней работать. Иначе можно всё потерять при следующем обновлении.

 
Mikalas:
Посмотри пример (OnClickButtonClose()).
 
Спасибо
 

Если кому-то интересно, то решил так:

Сделал копию Dialog.mqh --> _Dialog.mqh

В классе CDialog в public добавил функцию:

void              CloseClick();

 реализация функции:

void CDialog::CloseClick(void) 
{
  OnClickButtonClose();
} 

 в обработчике OnChartEvent  вызываю эту функцию:

if ( sparam == "enter_dialogClose" )
    {
      if ( EnterDialog.Visible( true ) )
      {
        ObjectSetString( 0, "ud_button", OBJPROP_TEXT, "5" );
        EnterDialog.CloseClick();
      }
    }

 ВСЁ!

P.S Спасибо Yurich :) 

 

Мда...

А православно отнаследоваться и переопределить OnEvent?

 
TheXpert:

Мда...

А православно отнаследоваться и переопределить OnEvent?

Лень матушка...
Причина обращения: