MetaTrader 4 Build 529 beta rilasciato con un nuovo compilatore - pagina 150

 

Perché quando si 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());
}

il terminale reagisce non solo al ridimensionamento del grafico, ma anche a qualsiasi movimento del mouse?

 
Barbarian:

Perché quando si implementa:

il terminale reagisce non solo al ridimensionamento del grafico, ma anche a qualsiasi movimento del mouse?


Molto probabilmente è progettato in questo modo, controlla se puoi ottenere in tempo reale le coordinate del mouse e la posizione del clic...

È stato notato che se il terminale è in background e qualsiasi altro software è in primo piano, il terminale riceve ancora informazioni dal mouse quando si passa il mouse sul grafico del terminale in background ....

 
VOLDEMAR:


Molto probabilmente è progettato in questo modo, controlla se puoi ottenere le coordinate del mouse e i clic in tempo reale...

È stato notato che se il terminale è sul secondo sfondo e qualsiasi altro software è sul primo, allora quando si passa il mouse sulla grafica del terminale sullo sfondo, il terminale riceve ancora informazioni dal mouse .....

Sì, ma è specificato nell'aiuto:

Spostamento e clic del mouse (se la proprietà CHART_EVENT_MOUSE_MOVE=true del grafico)

Ho questa proprietà impostata su false. Come posso disabilitare la risposta del mouse? Ho solo bisogno di ridimensionare il grafico.
 
Barbarian:

Perché quando si implementa:

il terminale reagisce non solo al ridimensionamento del grafico, ma anche a qualsiasi movimento del mouse?


Dovrebbe essere così:

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


Deve essere così:

Grazie, funziona come dovrebbe :)
 
Qualcuno mi dia una risposta al post https://www.mql5.com/ru/forum/147679/page152#888374
 
VOLDEMAR:
Qualcuno mi dia una risposta al post https://www.mql5.com/ru/forum/147679/page152#888374

Io uso CCanvas - meno scrittura e più facile da lavorare (copiare, creare array, ecc.).

Come lavorare con l'API grafica di base può essere compreso analizzando l'esempio del produttore - la stessa classe CCanvas nella libreria standard.

Un esempio di CCanvas (e non solo) è incluso nel trailer. // Esempio quasi invariato da cinque.

File:
 
MetaDriver:

Io uso CCanvas - meno scrittura e più facile da lavorare (copiare, creare array, ecc.).

Come lavorare con l'API grafica di base può essere compreso analizzando l'esempio del produttore - la stessa classe CCanvas nella libreria standard.

Un esempio di CCanvas (e non solo) è incluso nel trailer. // L'esempio è quasi invariato, adottato da Five.

Non credo che sia giusto farlo in questo modo:

CCanvas * Label;

int OnInit() {
   Label = new CCanvas();
   //некий код
}
void DeInit() {
   delete Label;
}
Forse è la cosa giusta da fare:
CCanvas * Label = new CCanvas();

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

Non credo che sia la cosa giusta da fare:

Forse questo è il modo giusto per farlo:
Entrambi sono corretti.
 
VOLDEMAR:
Qualcuno mi dia una risposta al post https://www.mql5.com/ru/forum/147679/page152#888374

Il testo deve essere creato separatamente. Sopra l'etichetta. Oppure potete usare l'oggetto Button, dove il testo può essere impostato in una volta sola.