Anatoly、私はバグに気づきました。例を見て、ウィンドウが右端まで押されていて、ツールチップが有効になっている場合、これらのツールチップが画面の右端を越えてしまうことをすぐに確認しました。ツールチップが画面からはみ出したときのx座標を修正してもらえますか?
そしてもう一つの提案:メニュー、ドロップダウン・サブメニューを持つメニュー・アイテム(正しい呼び方がわかりません)、別のアイテムが開くことを示す右矢印があるものでは、(Windowsのように)そのようなメニュー・アイテムにカーソルを合わせたときに開くようにしたほうがいいと思います。あるいは、カーソルを合わせるかクリックするかで、新しい項目が開くようにするか(今のまま)。
Anatoly、私はバグに気づきました。例を見て、ウィンドウが右端まで押されていて、ツールチップが有効になっている場合、これらのツールチップが画面の右端を越えてしまうことをすぐに確認しました。ツールチップが画面からはみ出したときのx座標を修正してもらえますか?
そしてもう一つの提案:メニュー、ドロップダウン・サブメニューを持つメニュー・アイテム(正しい呼び方がわかりません)、別のアイテムが開くことを示す右矢印があるものでは、(Windowsのように)そのようなメニュー・アイテムにカーソルを合わせたときに開くようにしたほうがいいと思います。あるいは、カーソルを合わせるかクリックするかで、新しい項目が開くようにするか(今のまま)。
そうします。ライブラリの最初のバージョンが完全に公開された後に、修正と改良を行います。現在の結果を修正する必要があります。
その後、やるべきことのリストを作成し、優先順位を定義し、別の記事を公開するようにします。
素晴らしい連載記事をありがとうございます。 MQL4のコードを楽しく読ませていただきました。 Program.mqhは以下の2つのエラーです:
//error#1: 'Program.mqh'の配列が範囲外 (753,32) //742~746行を修正 string text[2]= { "\"Icon button\" (1) control", "Opens the dialog box (2)." }; //error#2: 'Program.mqh'の配列が範囲外 (1012,32) //1000行目から1005行目までを修正 string text[3]= { "\"Icon button\" (5) control", "This is the second line of the tooltip.", "This is the third line of the tooltip." };
素晴らしい連載をありがとうございました。 MQL4のコードも楽しく読ませていただきました。 Program.mqhは以下の2つのエラーです:
ありがとうございます。
これらのエラーの私のバージョンではありません。
742-746:
//+------------------------------------------------------------------+ //| ツールチップ1| //+------------------------------------------------------------------+ bool CProgram::CreateTooltip1(void) { #define TOOLTIP1_LINES_TOTAL 2 //--- m_tooltip1.WindowPointer(m_window1); m_tooltip1.ElementPointer(m_icon_button1); //--- string text[]= { "Line 1", "Line 2" }; //--- m_tooltip1.Header("Icon Button 1"); m_tooltip1.XSize(250); m_tooltip1.YSize(70); //--- for(int i=0; i<TOOLTIP1_LINES_TOTAL; i++) m_tooltip1.AddString(text[i]); //--- if(!m_tooltip1.CreateTooltip(m_chart_id,m_subwin)) return(false); //--- CWndContainer::AddToElementsArray(0,m_tooltip1); return(true); }
//---
1000-1005:
//+------------------------------------------------------------------+ //| ツールチップ5| //+------------------------------------------------------------------+ bool CProgram::CreateTooltip5(void) { #define TOOLTIP5_LINES_TOTAL 3 //--- m_tooltip5.WindowPointer(m_window1); m_tooltip5.ElementPointer(m_icon_button5); //--- string text[]= { "Line 1", "Line 2", "Line 3" }; //--- m_tooltip5.Header("Icon Button 5"); m_tooltip5.XSize(250); m_tooltip5.YSize(80); //--- for(int i=0; i<TOOLTIP5_LINES_TOTAL; i++) m_tooltip5.AddString(text[i]); //--- if(!m_tooltip5.CreateTooltip(m_chart_id,m_subwin)) return(false); //--- CWndContainer::AddToElementsArray(0,m_tooltip5); return(true); }
ありがとう。
これらのエラーの私のバージョンではありません。
742-746:
//---
1000-1005:
Kaleemは少し古いプラットフォームのバージョンを使っているようです。
しかし、わかりやすくするため、またエラーが起きにくくするために、ソースコードを変更して、text[TOOLTIP1_LINES_TOTAL]とtext[TOOLTIP5_LINES_TOTAL]のように、明示的にサイズを指定して配列を定義するようにすべきです。そうしないと、将来、配列が変更されても定義が省略されない場合に、out of boundsエラーが発生する可能性があります。
Kaleemは少し古いプラットフォームのバージョンを使っているようです。
しかし、わかりやすくするため、またエラーが起きにくくするために、ソースコードを変更して、text[TOOLTIP1_LINES_TOTAL]とtext[TOOLTIP5_LINES_TOTAL]のように、明示的にサイズを指定して配列を定義するようにすべきです。そうしないと、将来、配列が変更されても定義が省略されない場合に、out of bounds エラーが発生する可能性があります。
MetaTrader 4 を使用しています:4.00 Build 950 最新バージョンではないですか?
アナトリー、メインパネルから2つのウインドウを開いて、3つのウインドウをアクティブに保つことは可能ですか?
例:メインパネルがあり、2つの追加パネルを開くためのボタンがあり、それぞれの追加パネルにはボタンやその他のものがあります。
メインパネルのボタン1を押すと、パネル1が開きます。メインパネルのボタンはアクティブのままであり、パネル1上でもアクティブである。
panel1が既に開いている時にメインパネルのbutton2を押す - panel2が開く。メインパネル上、パネル1上、パネル2上のボタンはすべてアクティブのままです。
これにより、移動可能なアクティブ・パネルを持つインナーフェイスを持つことができ、それぞれのパネルが独自の機能を実行します。
一度にアクティブなパネルを1つだけ持つことも可能です。

- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
新しい記事 グラフィカルインタフェースIV:マルチウィンドウモードと優先度のシステム(チャプター2) はパブリッシュされました:
この章では、MQLアプリケーションでのマルチウィンドウインタフェースの作成の可能性をもたらすライブラリの実装を拡張します。また、グラフィカルオブジェクト上でのマウスの左クリックの優先順位のシステムを開発します。これは、要素がユーザのアクションに応答しない場合に発生する問題を回避するために必要です。
図1。マルチウィンドウモードのテスト
作者: Anatoli Kazharski