Закрытие панели

 

Добрый день!

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

 

 
Mikalas:

Добрый день!

Как сделать, что бы при нажатии на крестик панели, панель закрывалась?

 

Удалять всё объекты, из которых панель создана, если я правильно понимаю происхождение сей панели.
 
artmedia70:
Удалять всё объекты, из которых панель создана, если я правильно понимаю происхождение сей панели.

Нет, не правильно.

Панель всегда существует, просто при нажатии на крестик, она должна быть невидимой. 

 
Mikalas:

Нет, не правильно.

Панель всегда существует, просто при нажатии на крестик, она должна быть невидимой. 

Координаты в ноль
 
Если просто нужно временно скрыть панель, диалоговое окно или выпадающий список, то используйте OBJ_ALL_PERIODS и OBJ_NO_PERIODS.
 
tol64:
Если просто нужно временно скрыть панель, диалоговое окно или выпадающий список, то используйте OBJ_ALL_PERIODS и OBJ_NO_PERIODS.
Это понятно, не понятно как "понимать", что мышка кликнула на крестике.
 
Mikalas:
Это понятно, не понятно как "понимать", что мышка кликнула на крестике.
Смотрите типы событий графика: Типы событий графика >>>
 
tol64:
Смотрите типы событий графика: Типы событий графика >>>

Смотрел, ничего не высмотрел.

Сейчас у меня это работает через "внешнюю" кнопку:

//+------------------------------------------------------------------+
//| Expert Chart event function                                      |
//+------------------------------------------------------------------+
void OnChartEvent( const int id, const long& lparam, const double& dparam, const string& sparam )
{
  long b_state;
  
  if ( id == CHARTEVENT_OBJECT_CLICK )
  {
    if ( sparam == "ud_button" )
    {
      string a_value;
        
      if ( ObjectGetString( 0, "ud_button", OBJPROP_TEXT, 0, a_value ) )
      {
        if ( a_value == "5" )
        {
          CheckBox.Checked( false );
          EnterDialog.Visible( true );
          Cur_Button.ColorBackground( clrLightGray );
          Ok_Button.ColorBackground( clrLightGray );
          ObjectSetString( 0, "ud_button", OBJPROP_TEXT, "6" );
        }
        else
        {
          EnterDialog.Visible( false );
          ObjectSetString( 0, "ud_button", OBJPROP_TEXT, "5" );
        }
      }
    }
   ChartRedraw();
  }
}

 Но я хочу, чтобы панель становилась невидимой, при нажатии на крестик панели.

 
Mikalas:

Смотрел, ничего не высмотрел.

Сейчас у меня это работает через "внешнюю" кнопку:

Но я хочу, чтобы панель становилась невидимой, при нажатии на крестик панели.

Для создания панели вы используете стандартную библиотеку?
 
tol64:
Для создания панели вы используете стандартную библиотеку?

Да.

#include              <Controls\Dialog.mqh> 

CDialog               EnterDialog;  

 
Mikalas:

Да.

#include              <Controls\Dialog.mqh> 

CDialog               EnterDialog;  

А Show/Hide не помогает?
Причина обращения: