Скачать MetaTrader 5

Фишка: определение цвета фона чарта

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Егор
166
Егор  

Может быть полезна для автоматического задания цвета объектов для черного/белого фона.

int getBackgroundColor()
{
  int h = WindowHandle(Symbol(), Period());
  int hDC = GetWindowDC(h);
  int col = GetPixel(hDC, 2, 2);
  if(col==-1) {
    // левый верхний угол не виден
    int rect[4];
    GetWindowRect(h, rect);
    int wW = rect[2] - rect[0]; // ширина окна
    int wH = rect[3] - rect[1]; // высота окна
    col = GetPixel(hDC, wW-3, wH-3); // правый нижний угол
    if(col==-1) col = GetPixel(hDC, 2, wH-3); // ЛНУ
    if(col==-1) col = GetPixel(hDC, wW-3, 2); // ПВУ
  }
  ReleaseDC(h, hDC);
  return(col);
}
Файлы:
Vadim Zhunko
5226
Vadim Zhunko  
Интересно! Такие вещи надо в копилке (Code Base) выкладываь.
Егор
166
Егор  
Zhunko писал(а) >>
Интересно! Такие вещи надо в копилке (Code Base) выкладываь.

Соберу несколько, выложу в Code Base.

Andrew Shelkovenko
215
Andrew Shelkovenko  
Erics писал(а) >>

Может быть полезна для автоматического задания цвета объектов для черного/белого фона.

Можно наверное использовать и эту для получения цвета фона.
The GetBkColor function returns the current background color for the specified device context.

Declare Function GetBkColor Lib "gdi32" Alias "GetBkColor" (ByVal hdc As Long) As Long

А этой может быть можно цвет фона изменить?

Declare Function SetBkMode Lib "gdi32" Alias "SetBkMode" (ByVal hdc As Long, ByVal nBkMode As Long) As Long

Егор
166
Егор  
diakin писал(а) >>

Можно наверное использовать и эту для получения цвета фона.
The GetBkColor function returns the current background color for the specified device context.

Declare Function GetBkColor Lib "gdi32" Alias "GetBkColor" (ByVal hdc As Long) As Long

А этой может быть можно цвет фона изменить?

Declare Function SetBkMode Lib "gdi32" Alias "SetBkMode" (ByVal hdc As Long, ByVal nBkMode As Long) As Long

Проверил: GetBkColor выдает белый фон в любом случае.

Conductor
33
Conductor  
Спасибо. Оч хорошо.
PapaYozh
3768
PapaYozh  
Erics:

Может быть полезна для автоматического задания цвета объектов для черного/белого фона.


Что вернёт функция WindowHandle, если открыто больше одного окна с параметрами symbol и timeframe?
Vadim Zhunko
5226
Vadim Zhunko  
PapaYozh:

Что вернёт функция WindowHandle, если открыто больше одного окна с параметрами symbol и timeframe?
Вернёт дескриптор окна, на котором она вызвана.
Виктор
Модератор
6559
Виктор  
Zhunko:
Вернёт дескриптор окна, на котором она вызвана.
А если она вызвана из другого окна, но в ней явно прописаны ТФ и символ нескольких одинаковых окон?
Vadim Zhunko
5226
Vadim Zhunko  
granit77:
А если она вызвана из другого окна, но в ней явно прописаны ТФ и символ нескольких одинаковых окон?
Вернёт то, которое наверху Z-последовательности. Активное окно с графиком всегда наверху.
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий