Скачать MetaTrader 5

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

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Mikhail Filimonov
5931
Mikhail Filimonov 2015.01.13 12:52 

Добрый день!

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

 

Artyom Trishkin
Модератор
77313
Artyom Trishkin 2015.01.13 12:54  
Mikalas:

Добрый день!

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

 

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

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

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

Artyom Trishkin
Модератор
77313
Artyom Trishkin 2015.01.13 13:02  
Mikalas:

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

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

Координаты в ноль
Anatoli Kazharski
58046
Anatoli Kazharski 2015.01.13 13:04  
Если просто нужно временно скрыть панель, диалоговое окно или выпадающий список, то используйте OBJ_ALL_PERIODS и OBJ_NO_PERIODS.
Mikhail Filimonov
5931
Mikhail Filimonov 2015.01.13 13:07  
tol64:
Если просто нужно временно скрыть панель, диалоговое окно или выпадающий список, то используйте OBJ_ALL_PERIODS и OBJ_NO_PERIODS.
Это понятно, не понятно как "понимать", что мышка кликнула на крестике.
Anatoli Kazharski
58046
Anatoli Kazharski 2015.01.13 13:09  
Mikalas:
Это понятно, не понятно как "понимать", что мышка кликнула на крестике.
Смотрите типы событий графика: Типы событий графика >>>
Mikhail Filimonov
5931
Mikhail Filimonov 2015.01.13 13:21  
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();
  }
}

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

Anatoli Kazharski
58046
Anatoli Kazharski 2015.01.13 13:23  
Mikalas:

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

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

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

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

Да.

#include              <Controls\Dialog.mqh> 

CDialog               EnterDialog;  

Dmitriy Skub
11731
Dmitriy Skub 2015.01.13 13:41  
Mikalas:

Да.

#include              <Controls\Dialog.mqh> 

CDialog               EnterDialog;  

А Show/Hide не помогает?
123
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий