MetaTrader 4 Build 529 beta mit neuem Compiler veröffentlicht - Seite 150

 

Warum bei der Umsetzung:

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

das Terminal nicht nur auf die Größenänderung des Diagramms, sondern auch auf jede Bewegung der Maus reagiert?

 
Barbarian:

Warum bei der Umsetzung:

Terminal nicht nur auf die Größenänderung des Diagramms, sondern auch auf jede Mausbewegung reagiert?


Höchstwahrscheinlich ist es so konzipiert, überprüfen Sie, ob Sie Echtzeit-Mauskoordinaten sowie die Klickposition erhalten können...

Es wurde festgestellt, dass, wenn sich das Terminal im Hintergrund und eine andere Software im Vordergrund befindet, das Terminal immer noch Informationen von der Maus empfängt, wenn man mit der Maus über das Terminaldiagramm im Hintergrund fährt ....

 
VOLDEMAR:


Höchstwahrscheinlich ist es so konzipiert, prüfen Sie, ob Sie Mauskoordinaten und Klicks in Echtzeit abrufen können...

Es wurde festgestellt, dass, wenn sich das Terminal auf dem zweiten Hintergrund befindet und eine andere Software auf dem ersten, das Terminal immer noch Informationen von der Maus erhält, wenn es mit der Maus über das Terminaldiagramm im Hintergrund fährt .....

Ja, aber das ist in der Hilfe angegeben:

Mausbewegung und Mausklick (wenn CHART_EVENT_MOUSE_MOVE=true Eigenschaft des Diagramms)

Ich habe diese Eigenschaft auf false gesetzt. Wie kann ich die Reaktion der Maus deaktivieren? Ich muss nur die Größe des Diagramms ändern.
 
Barbarian:

Warum bei der Umsetzung:

das Terminal nicht nur auf die Größenänderung des Diagramms, sondern auch auf jede Bewegung der Maus reagiert?


Das sollte so sein:

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


Das muss es auch sein:

Danke, es funktioniert wie es soll :)
 
Kann mir jemand eine Antwort auf den Beitrag https://www.mql5.com/ru/forum/147679/page152#888374 geben?
 
VOLDEMAR:
Kann mir jemand eine Antwort auf den Beitrag https://www.mql5.com/ru/forum/147679/page152#888374 geben?

Ich verwende CCanvas - weniger Schreiben und einfacher zu arbeiten (Kopieren, Erstellen von Arrays, etc.).

Wie man mit der grundlegenden grafischen API arbeitet, lässt sich anhand des Beispiels des Herstellers nachvollziehen - der gleichen CCanvas-Klasse in der Standardbibliothek.

Ein Beispiel für CCanvas (und nicht nur) ist im Trailer enthalten. // Beispiel fast unverändert von fünf.

Dateien:
 
MetaDriver:

Ich verwende CCanvas - weniger Schreibarbeit und einfacher zu arbeiten (Kopieren, Erstellen von Arrays, etc.).

Wie man mit der grundlegenden grafischen API arbeitet, lässt sich anhand des Beispiels des Herstellers nachvollziehen - der gleichen CCanvas-Klasse in der Standardbibliothek.

Ein Beispiel für CCanvas (und nicht nur) ist im Trailer enthalten. // Das Beispiel ist fast unverändert und wurde von Five übernommen.

Ich glaube nicht, dass es richtig ist, so vorzugehen:

CCanvas * Label;

int OnInit() {
   Label = new CCanvas();
   //некий код
}
void DeInit() {
   delete Label;
}
Vielleicht ist das die richtige Entscheidung:
CCanvas * Label = new CCanvas();

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

Ich glaube nicht, dass das das Richtige ist:

Vielleicht ist dies der richtige Weg:
Beides ist richtig.
 
VOLDEMAR:
Kann mir jemand eine Antwort auf den Beitrag https://www.mql5.com/ru/forum/147679/page152#888374 geben?

Der Text muss separat erstellt werden. Auf der Oberseite des Etiketts. Oder Sie können das Objekt Button verwenden, bei dem der Text auf einmal gesetzt werden kann.