アナトリーコーディングのレベル、クオリティ、すべてが法外で、個人的には最高だ。このとてつもない仕事をありがとう!残りのパートも楽しみにしています!
皆さん、こんにちは、
前回のPart(4)のソースを入手しました。今はすべてうまくいっています。
ローランド
標準ライブラリを使ってマウスの動きを処理する方法は?ExpertsExamplesにあるファイルでテストしました。
.ChartEvent(...)関数だけだとON_MOUSE_FOCUS_SETイベントが処理されません。
.OnEvent(...)関数を使用すると、ON_MOUSE_FOCUS_SETイベントは処理されますが、ウィンドウを動かすことができません。
.ChartEvent()と.OnEvent()の両方の関数を使用すると、ON_MOUSE_FOCUS_SETイベントは処理されますが、インクリメントボタンとデクリメントボタンをクリックすると、1ステップ以上変化してしまいます。
virtual bool OnItemFocusSet(const int index); //--- 再描画 bool Redraw(void); bool RowState(const int index,const bool select); bool CheckView(void); }; //+------------------------------------------------------------------+ //| チャート・イベントの共通ハンドラ| //+------------------------------------------------------------------+ EVENT_MAP_BEGIN(CListView) ON_INDEXED_EVENT(ON_CLICK,m_rows,OnItemClick) ON_INDEXED_EVENT(ON_MOUSE_FOCUS_SET,m_rows,OnItemFocusSet) EVENT_MAP_END(CWndClient)
bool CListView::OnItemFocusSet(const int index) { //--- "行 "を選択 Select(index+m_offset); //--- 通知を送信する EventChartCustom(CONTROLS_SELF_MESSAGE,ON_CHANGE,m_id,0.0,m_name); //--- 処理 return(true); }

取引の機会を逃しています。
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
新しい記事 グラフィカルインタフェース I: グラフィカルインタフェースの動画化(チャプター 3) はパブリッシュされました:
本稿はグラフィカルインターフェイスに関するシリーズの続きです。シリーズ第一弾のグラフィカルインタフェース I: ライブラリストラクチャの準備(チャプター 1)ではライブラリの目的を詳細に考慮します。第一部の記事へのリンクの完全なリストは各章の終わりにあります。そこではまた、開発の現段階でのライブラリの完全版をダウンロードすることができます。ファイルはアーカイブと同じディレクトリに配置される必要があります。
前回の記事で は、コントロールのフォームクラスの開発に着手しました。本稿では、チャート領域にフォームを移動するためのクラスメソッドを書き入れによってそれを続行 します。その後、このインターフェイスコンポーネントをライブラリコアに統合します。また、カーソルが上をホバリングしたときにフォームコントロールの色 が変わることを保証します。
カーソルが上をホバリングしたときのインターフェイスコンポーネント外観の変更
全てのコントロールの基本クラスであるCElementクラスの実装については既に考慮しました。そのメンバの一つとして、カーソルのホバー時にオブジェクトの色を変更するCElement::ChangeObjectColor() メソッドが作成されました。ここで、それを作業に使用するためのメカニズムを作成します。このような機能の追加には、タイマーが必要です。これは、MQL アプリケーションの初期設定では無効になっています。設定された目標に応じたタイマーを有効にするかどうかの決定はアプリケーション開発者に任されていま す。
タイマーを有効にするには、MQL言語には異なる頻度を持つEventSetTimer()ちEventSetMillisecondTimer() の2つの関数があります。一番目の関数では、1秒以上の間隔を設定することができます。カーソルのホバー時のコントロールの外観変更には、1秒間隔は長す ぎるので、これは目的に沿いません。変更は、そのような遅延なしですぐに起こるべきです。ミリ秒単位で測定された間隔でのタイマー設定をサポートするEventSetMillisecondTimer()関数が使用されます。MQLレフェレンスによれば、この関数を使用して設定できる最小間隔は10から16ミリ秒です。これは我々の計画を実現するのに十分です。
図2オブジェクトのマウスカーソルへの反応のためのテスト
作者: Anatoli Kazharski