MetaTrader 4 Build 529 beta publié avec un nouveau compilateur - page 150

 

Pourquoi lors de la mise en œuvre :

//+------------------------------------------------------------------+
//| 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());
}

le terminal réagit non seulement au redimensionnement du graphique, mais aussi à tout mouvement de la souris ?

 
Barbarian:

Pourquoi lors de la mise en œuvre :

réagit non seulement au redimensionnement du graphique, mais aussi à tout mouvement de la souris ?


C'est probablement conçu de cette façon, vérifiez si vous pouvez obtenir les coordonnées de la souris en temps réel ainsi que la position du clic...

On a remarqué que si le terminal est en arrière-plan et qu'un autre logiciel est au premier plan, le terminal reçoit toujours des informations de la souris lorsqu'on passe la souris sur la carte du terminal en arrière-plan .....

 
VOLDEMAR:


C'est probablement conçu de cette façon, vérifiez si vous pouvez obtenir les coordonnées de la souris et les clics en temps réel...

Il a été remarqué que si le terminal est sur le second fond d'écran et qu'un autre logiciel est sur le premier, alors lorsque la souris survole le graphique du terminal dans le fond d'écran, le terminal reçoit toujours des informations de la souris ......

Oui, mais c'est précisé dans l'aide :

Déplacement de la souris et clic de la souris (si propriété CHART_EVENT_MOUSE_MOVE=true du graphique)

J'ai mis cette propriété à false. Comment puis-je désactiver la réponse de la souris ? J'ai seulement besoin de redimensionner le graphique.
 
Barbarian:

Pourquoi lors de la mise en œuvre :

le terminal réagit non seulement au redimensionnement du graphique, mais aussi à tout mouvement de la souris ?


Ça devrait être comme ça :

//+------------------------------------------------------------------+
//| 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:


Il doit l'être :

Merci, cela fonctionne comme il se doit :)
 
Que quelqu'un me donne une réponse à ce message https://www.mql5.com/ru/forum/147679/page152#888374
 
VOLDEMAR:
Que quelqu'un me donne une réponse à ce message https://www.mql5.com/ru/forum/147679/page152#888374

J'utilise CCanvas - moins d'écriture et plus facile à utiliser (copie, création de tableaux, etc.).

La façon de travailler avec l'API graphique de base peut être comprise en analysant l'exemple du fabricant - la même classe CCanvas dans la bibliothèque standard.

Un exemple de CCanvas (et pas seulement) est inclus dans le trailer. // Exemple presque inchangé par rapport à cinq.

Dossiers :
 
MetaDriver:

J'utilise CCanvas - moins d'écriture et plus facile à travailler (copie, création de tableaux, etc.).

La façon de travailler avec l'API graphique de base peut être comprise en analysant l'exemple du fabricant - la même classe CCanvas dans la bibliothèque standard.

Un exemple de CCanvas (et pas seulement) est inclus dans le trailer. // L'exemple est presque inchangé, adopté à partir de Five.

Je ne pense pas que ce soit bien de le faire de cette façon :

CCanvas * Label;

int OnInit() {
   Label = new CCanvas();
   //некий код
}
void DeInit() {
   delete Label;
}
Peut-être que c'est la bonne chose à faire :
CCanvas * Label = new CCanvas();

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

Je ne pense pas que ce soit la bonne chose à faire :

Peut-être que c'est la bonne façon de faire :
Les deux sont corrects.
 
VOLDEMAR:
Que quelqu'un me donne une réponse à ce message https://www.mql5.com/ru/forum/147679/page152#888374

Le texte doit être créé séparément. Sur le dessus de l'étiquette. Vous pouvez aussi utiliser l'objet Bouton, où le texte peut être défini en une seule fois.