MetaTrader 4 Build 529 ベータ版リリース、新コンパイラー搭載 - ページ 150

 

なぜ、実装時に。

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

チャートのサイズ変更だけでなく、マウスの動きにも反応するのでしょうか?

 
Barbarian:

なぜ、実装時に。

ターミナルは、チャートのサイズ変更だけでなく、マウスの動きにも反応するのですか?


そのように設計されている可能性が高いので、クリック位置だけでなく、マウスの座標をリアルタイムで取得できるかどうか確認してください......。

端末がバックグラウンドにあり、他のソフトウェアがフォアグラウンドにある場合でも、バックグラウンドの端末のチャートにマウスを合わせると、端末がマウスからの情報を受信することに気づきました・・・。

 
VOLDEMAR:


そのように設計されている可能性が高いので、マウスの座標やクリック数をリアルタイムで取得できるかどうか確認してみてください...。

端末が2番目のバックグラウンドにあり、他のソフトウェアが1番目のバックグラウンドにある場合、バックグラウンドの端末グラフィックにマウスを置くと、端末はマウスからの情報をそのまま受け取ることができることに気づきました ...。

はい、でもヘルプで指定されています。

マウスの移動とマウスボタンのクリック(チャートのCHART_EVENT_MOUSE_MOVE=trueプロパティの場合)。

このプロパティはfalseに設定しています。マウスの反応を無効にするにはどうしたらいいですか?チャートのサイズを変えるだけでいいんです。
 
Barbarian:

なぜ、実装時に。

チャートのサイズ変更だけでなく、マウスの動きにも反応するのでしょうか?


こんな感じでいいんじゃないでしょうか。

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


そうでなければならないのです。

ありがとうございます、そのとおりに動いています :)
 
誰かポストへの答えを教えてくださいhttps://www.mql5.com/ru/forum/147679/page152#888374
 
VOLDEMAR:
誰かポストへの答えを教えてくださいhttps://www.mql5.com/ru/forum/147679/page152#888374

私はCCanvasを使っています。書き込みが少なく、作業も簡単です(コピー、配列の作成など)。

基本的なグラフィカル API をどのように扱うかは、メーカーからのサンプル、つまり標準ライブラリの同じ CCanvas クラスを分析することで理解することができます。

CCanvasの例(だけではありません)は、予告編に収録されています。// 5とほとんど変わらない例。

ファイル:
 
MetaDriver:

私はCCanvasを使っています。書き込みが少なく、作業も簡単です(コピー、配列の作成など)。

基本的なグラフィカル API をどのように扱うかは、メーカーからのサンプル、つまり標準ライブラリの同じ CCanvas クラスを分析することで理解することができます。

CCanvasの例(だけではありません)は、予告編に収録されています。// 例題はFiveから採用され、ほとんど変更されていない。

そのやり方はちょっと違うと思うんです。

CCanvas * Label;

int OnInit() {
   Label = new CCanvas();
   //некий код
}
void DeInit() {
   delete Label;
}
それが正解なのかもしれません。
CCanvas * Label = new CCanvas();

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

それが正しいことだとは思いません。

もしかしたら、これが正しいやり方なのかもしれません。
どちらも正解です。
 
VOLDEMAR:
誰かポストへの答えを教えてくださいhttps://www.mql5.com/ru/forum/147679/page152#888374

テキストは別途作成する必要があります。ラベルの上にまた、テキストを一度に設定できるButtonオブジェクトを使用することもできます。