MetaTrader 4 Build 529 Beta, Yeni Derleyici ile Yayınlandı - sayfa 150

 

Neden uygularken:

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

terminal yalnızca grafiğin yeniden boyutlandırılmasına değil, aynı zamanda herhangi bir fare hareketine de yanıt veriyor mu?

 
Barbarian :

Neden uygularken:

terminal yalnızca grafiğin yeniden boyutlandırılmasına değil, aynı zamanda herhangi bir fare hareketine de yanıt veriyor mu?


Büyük olasılıkla bu amaçlandı, fare koordinatlarını alıp alamayacağınızı kontrol edin ve konumları gerçek zamanlı olarak tıklayın ...

Terminal arka plandaysa ve ilk planda başka bir yazılım varsa, fareyi arka planda terminal grafiğinin üzerine getirdiğinizde, terminalin fareden hala bilgi aldığı fark edildi ....

 
VOLDEMAR :


Büyük olasılıkla bu amaçlandı, fare koordinatlarını alıp alamayacağınızı kontrol edin ve konumları gerçek zamanlı olarak tıklayın ...

Terminal arka plandaysa ve ilk planda başka bir yazılım varsa, fareyi arka planda terminal grafiğinin üzerine getirdiğinizde, terminalin fareden hala bilgi aldığı fark edildi ....

Evet, ancak kılavuzda şunlar yazıyor:

Fare hareketi ve fare düğmesi tıklamaları (grafik için CHART_EVENT_MOUSE_MOVE=true özelliği ayarlanmışsa)

Bu özelliği false olarak ayarladım. Fare tepkisi nasıl kapatılır? Sadece grafiği yeniden boyutlandırmam gerekiyor.
 
Barbarian :

Neden uygularken:

terminal yalnızca grafiğin yeniden boyutlandırılmasına değil, aynı zamanda herhangi bir fare hareketine de yanıt veriyor mu?


Bunun gibi olmalı:

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


Bunun gibi olmalı:

Teşekkürler, gayet iyi çalıştı :)
 
Birisine gönderiye cevap verin https://www.mql5.com/en/forum/147679/page152#888374
 
VOLDEMAR :
Birisine gönderiye cevap verin https://www.mql5.com/en/forum/147679/page152#888374

CCanvas kullanıyorum - daha az yazma ve çalışması daha kolay (kopyala-yapıştır, diziler oluştur, vb.).

Temel grafik API'si ile nasıl çalışılacağı, üreticiden bir örnek - standart kitaplıktaki aynı CCanvas sınıfı - analiz edilerek anlaşılabilir.

Fragmanda CCanvas (ve sadece değil) kullanımına bir örnek. // Örnek, neredeyse hiç değişiklik yapılmadan 5'ten taşındı

Dosyalar:
 
MetaDriver :

CCanvas kullanıyorum - daha az yazma ve çalışması daha kolay (kopyala-yapıştır, diziler oluştur, vb.).

Temel grafik API'si ile nasıl çalışılacağı, üreticiden bir örnek - standart kitaplıktaki aynı CCanvas sınıfı - analiz edilerek anlaşılabilir.

Fragmanda CCanvas (ve sadece değil) kullanımına bir örnek. // Örnek, neredeyse hiç değişiklik yapılmadan 5'ten taşındı

Bunu yapmanın doğru olduğunu düşünmüyorum:

CCanvas * Label;

int OnInit () {
   Label = new CCanvas();
   //некий код
}
void DeInit() {
   delete Label;
}
Belki bu daha doğru olur:
CCanvas * Label = new CCanvas();

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

Bunu yapmanın doğru olduğunu düşünmüyorum:

Belki bu daha doğru olur:
Her iki seçenek de doğrudur.
 
VOLDEMAR :
Birisine gönderiye cevap verin https://www.mql5.com/en/forum/147679/page152#888374

Metin ayrı olarak oluşturulmalıdır. etiketin üzerinde. Veya metni hemen ayarlayabileceğiniz Button nesnesini kullanabilirsiniz.