MetaTrader 4 Build 529 beta liberado con nuevo compilador - página 150

 

Por qué cuando se implementa:

//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) {
   if(CHARTEVENT_CHART_CHANGE) Alert("Event start, size window = "+ChartWidthInPixels());
}

¿el terminal reacciona no sólo al cambio de tamaño del gráfico, sino también a cualquier movimiento del ratón?

 
Barbarian:

Por qué cuando se implementa:

El terminal reacciona no sólo al cambio de tamaño del gráfico, sino también a cualquier movimiento del ratón?


Lo más probable es que esté diseñado así, comprueba si puedes obtener las coordenadas del ratón en tiempo real, así como la posición del clic...

Se ha observado que si el terminal está en segundo plano y cualquier otro software está en primer plano, el terminal sigue recibiendo información del ratón al pasar el ratón por encima del gráfico del terminal en segundo plano ....

 
VOLDEMAR:


Lo más probable es que esté diseñado así, comprueba si puedes obtener las coordenadas del ratón y los clics en tiempo real...

Se ha observado que si el terminal está en el segundo fondo y cualquier otro software está en el primero, entonces al pasar el ratón por el gráfico del terminal en el fondo, el terminal sigue recibiendo información del ratón .....

Sí, pero está especificado en la ayuda:

Mover el ratón y hacer clic en los botones del ratón (si la propiedad CHART_EVENT_MOUSE_MOVE=true del gráfico)

Tengo esta propiedad configurada en falso. ¿Cómo puedo desactivar la respuesta del ratón? Sólo necesito cambiar el tamaño del gráfico.
 
Barbarian:

Por qué cuando se implementa:

¿el terminal reacciona no sólo al cambio de tamaño del gráfico, sino también a cualquier movimiento del ratón?


Debería ser así:

//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id, const long &lparam, const double &dparam, const string &sparam) {
   if(id==CHARTEVENT_CHART_CHANGE) Alert("Event start, size window = "+ChartWidthInPixels());
}
 
Wahoo:


Tiene que serlo:

Gracias, está funcionando como debería :)
 
Que alguien me dé una respuesta al post https://www.mql5.com/ru/forum/147679/page152#888374
 
VOLDEMAR:
Que alguien me dé una respuesta al post https://www.mql5.com/ru/forum/147679/page152#888374

Yo uso CCanvas - menos escritura y más fácil de trabajar (copiar, crear matrices, etc).

Cómo trabajar con la API gráfica básica se puede entender analizando el ejemplo del fabricante - la misma clase CCanvas en la biblioteca estándar.

En el tráiler se incluye un ejemplo de CCanvas (y no sólo). // Ejemplo casi sin cambios de cinco.

Archivos adjuntos:
 
MetaDriver:

Yo uso CCanvas - menos escritura y más fácil de trabajar (copiar, crear matrices, etc.).

Cómo trabajar con la API gráfica básica se puede entender analizando el ejemplo del fabricante - la misma clase CCanvas en la biblioteca estándar.

El ejemplo de CCanvas (y no sólo) se incluye en el tráiler. // El ejemplo es prácticamente el mismo, adoptado del Cinco.

No creo que sea correcto hacerlo así:

CCanvas * Label;

int OnInit() {
   Label = new CCanvas();
   //некий код
}
void DeInit() {
   delete Label;
}
Tal vez sea lo correcto:
CCanvas * Label = new CCanvas();

int OnInit() {
   //некий код
}
void DeInit() {
   delete Label;
}
 
Barbarian:

No creo que sea lo correcto:

Tal vez esta sea la forma correcta de hacerlo:
Ambos son correctos.
 
VOLDEMAR:
Que alguien me dé una respuesta al post https://www.mql5.com/ru/forum/147679/page152#888374

El texto debe crearse por separado. En la parte superior de la etiqueta. O puede utilizar el objeto Button, donde el texto se puede establecer de una vez.
Razón de la queja: