CRect
CRect はチャートの矩形領域のクラスです。
説明
CRect は、デカルト座標で矩形の左上と右下の角の両方の座標で定義される、領域のクラスです。
宣言
タイトル
#include <ControlsRect.mqh> |
クラスメソッド
プロパティ | |
Left | 左上の隅の X 座標を取得/設定します。 |
Top | 左上の隅の Y 座標を取得/設定します。 |
Right | 右下の隅の X 座標を取得/設定します。 |
Bottom | 右下の隅の Y 座標を取得/設定します。 |
Width | 幅を取得/設定します。 |
Height | 高さを取得/設定します。 |
SetBound | CRect クラスの座標を使用して領域の新しい座標を設定します。 |
Move | CRect クラスの新しい座標を設定します。 |
Shift | CRect 座標の相対的なシフトを行います。 |
Contains | 点が CRect クラス領域の内側に位置するかどうかをチェックします。 |
追加メソッド | |
Format | 領域の座標を文字列として取得します。 |
CDateTime
CDateTime は日付と時刻の操作に使用される構造体です。
説明
CDateTime 構造体は MqlDateTime から派生し、コントロールの日付と時刻の操作に使用されます。
宣言
タイトル
#include <ToolsDateTime.mqh> |
クラスメソッド
プロパティ | |
MonthName | 月の名前を取得します。 |
ShortMonthName | 月の短縮名を取得します。 |
DayName | 曜日名を取得します。 |
ShortDayName | 曜日の短縮名を取得します。 |
DaysInMonth | 月の日数を取得します。 |
Get/Set methods | |
DateTime | 日付と時刻を取得/設定します。 |
Date | 日付を設定します。 |
Time | 時刻を設定します。 |
Sec | 秒を設定します。 |
Min | 分を設定します。 |
Hour | 時間を設定します。 |
Day | 月の日を設定します。 |
Mon | 月を設定します。 |
Year | 年を設定します。 |
追加メソッド | |
SecDec | 指定された秒数を減算します。 |
SecInc | 指定された秒数を加算します。 |
MinDec | 指定された分数を減算します。 |
MinInc | 指定された分数を加算します。 |
HourDec | 指定された時間数を減算します。 |
HourInc | 指定された時間数を加算します。 |
DayDec | 指定された日数を減算します。 |
DayInc | 指定された日数を加算します。 |
MonDec | 指定された月数を減算します。 |
MonInc | 指定された月数を加算します。 |
YearDec | 指定された年数を減算します。 |
YearInc | 指定された年数を加算します。 |
CWnd
CWnd は MQL5 標準ライブラリに含まれている全てのコントロールの基本クラスです。
説明
CWnd クラスは基本コントロールクラスの実装です。
宣言
class CWnd : public CObject |
タイトル
#include <ControlsWnd.mqh> |
継承階層 CObject CWnd 直接子孫 CDragWnd, CWndContainer, CWndObj |
クラスメソッド
作成と破壊 | |
Create | コントロールの作成 |
Destroy | コントロールの破壊 |
チャートイベントハンドラ | |
OnEvent | 全てのチャートイベントのハンドラ |
OnMouseEvent | CHARTEVENT_MOUSE_MOVE イベントのハンドラ |
名称 | |
Name | コントロールの名称を取得します。 |
コンテナへのアクセス | |
ControlsTotal | コンテナのコントロール数を取得します。 |
Control | コントロールをインデックスで取得します。 |
ControlFind | コントロールを識別子で取得します。 |
ジオメトリ | |
Rect | CRect クラスオブジェクトへのポインタを取得します。 |
Left | 左上の隅の X 座標を取得/設定します。 |
Top | 左上の隅の Y 座標を取得/設定します。 |
Right | 右下の隅の X 座標を取得/設定します。 |
Bottom | 右下の隅の Y 座標を取得/設定します。 |
Width | 幅を取得/設定します。 |
Height | 高さを取得/設定します。 |
Move | コントロールの新しい座標を設定します。 |
Shift | コントロール座標の相対的なシフトを行います。 |
Resize | コントロールの新しい幅/高さを設定します。 |
Contains | 点/コントロールがコントロール領域の内側に位置するかどうかをチェックします。 |
Align | |
Alignment | コントロールのアラインメントプロパティを設定します。 |
Align | コントロールのアラインメントを行います。 |
識別 | |
Id | コントロールの識別子を取得/設定します。 |
State | |
IsEnabled | コントロールが有効かどうかを示す値を取得します。 |
Enable | コントロールが有効かどうかを示す値を設定します。 |
Disable | コントロールを無効にします。 |
IsVisible | 可視性フラグをチェックします。 |
Visible | 可視性フラグを設定します。 |
Show | コントロールを表示します。 |
Hide | コントロールを非表示にします。 |
IsActive | コントロールのアクティビティをチェックします。 |
Activate | コントロールをアクティブにします。 |
Deactivate | コントロールを無効にします。 |
状態フラグ | |
StateFlags | コントロールの状態フラグを取得/設定します。 |
StateFlagsSet | コントロールの状態フラグを設定します。 |
StateFlagsReset | コントロールの状態フラグをリセットします。 |
Properties flags | |
PropFlags | コントロールのプロパティフラグを取得/設定します。 |
PropFlagsSet | コントロールのプロパティフラグを設定します。 |
PropFlagsReset | コントロールのプロパティフラグをリセットします。 |
マウス操作 | |
MouseX | マウスの X 座標を取得/保存します。 |
MouseY | マウスの Y 座標を取得/保存します。 |
MouseFlags | マウスボタンの状態を取得/保存します。 |
MouseFocusKill | マウスのフォーカスをなくします。 |
内部イベントハンドラ | |
OnCreate | 「Create」イベントハンドラ |
OnDestroy | 「Destroy」イベントハンドラ |
OnMove | 「Move」イベントハンドラ |
OnResize | 「Resize」イベントハンドラ |
OnEnable | 「Enable」イベントハンドラ |
OnDisable | 「Disable」イベントハンドラ |
OnShow | 「Show」イベントハンドラ |
OnHide | 「Hide」イベントハンドラ |
OnActivate | 「Activate」イベントハンドラ |
OnDeactivate | 「Deactivate」イベントハンドラ |
OnClick | 「Click」イベントハンドラ |
OnChange | 「Change」イベントハンドラ |
マウスイベントハンドラ | |
OnMouseDown | 「MouseDown」イベントハンドラ |
OnMouseUp | 「MouseUp」イベントハンドラ |
ドラッグイベントハンドラ | |
OnDragStart | 「DragStart」イベントハンドラ |
OnDragProcess | 「DragProcess」 イベントハンドラ |
OnDragEnd | 「DragEnd」イベントハンドラ |
ドラッグオブジェクト | |
DragObjectCreate | ドラッグオブジェクトを作成します。 |
DragObjectDestroy | ドラッグオブジェクトを破壊します。 |
クラスから継承されたメソッド CObject Prev, Prev, Next, Next, Save, Load, Type, Compare |
CWndObj
CWndObj 標準ライブラリのシンプルコントロールの基本クラスです。
説明
CWndObj クラスはシンプルコントロールの基本メソッドを実装します。
宣言
class CWndObj : public CWnd |
タイトル
#include <ControlsWndObj.mqh> |
継承階層 CObject CWnd CWndObj 直接子孫 CBmpButton, CButton, CEdit, CLabel, CPanel, CPicture |
クラスメソッド
チャートイベント処理 | |
OnEvent | 全てのチャートイベントのハンドラ |
プロパティ | |
Text | チャートオブジェクトの OBJPROP_TEXT プロパティを取得/設定します。 |
Color | チャートオブジェクトの OBJPROP_COLOR プロパティを取得/設定します。 |
ColorBackground | チャートオブジェクトの OBJPROP_BGCOLOR プロパティを取得/設定します。 |
ColorBorder | チャートオブジェクトの OBJPROP_BORDER_COLORプロパティを取得/設定します。 |
Font | チャートオブジェクトの OBJPROP_FONT プロパティを取得/設定します。 |
FontSize | チャートオブジェクトの OBJPROP_FONTSIZE プロパティを取得/設定します。 |
ZOrder | チャートオブジェクトの OBJPROP_ZORDER プロパティを取得/設定します。 |
チャートオブジェクトイベントハンドラ | |
OnObjectCreate | CHARTEVENT_OBJECT_CREATE イベントハンドラ |
OnObjectChange | CHARTEVENT_OBJECT_CHANGE イベントハンドラ |
OnObjectDelete | CHARTEVENT_OBJECT_DELETE イベントハンドラ |
OnObjectDrag | CHARTEVENT_OBJECT_DRAG イベントハンドラ |
プロパティ変更イベントハンドラ | |
OnSetText | 「SetText」イベントハンドラ |
OnSetColor | 「SetColor」イベントハンドラ |
OnSetColorBackground | 「SetColorBackground」イベントハンドラ |
OnSetFont | 「SetFont」イベントハンドラ |
OnSetFontSize | 「SetFontSize」イベントハンドラ |
OnSetZOrder | 「SetZOrder」イベントハンドラ |
内部イベントハンドラ | |
OnDestroy | 「Destroy」イベントハンドラ |
OnChange | 「Change」イベントハンドラ |
クラスから継承されたメソッド CObject Prev, Prev, Next, Next, Save, Load, Type, Compare |
クラスから継承されたメソッド CWnd Create, Destroy, OnMouseEvent, Name, ControlsTotal, Control, ControlFind, Rect, Left, Left, Top, Top, Right, Right, Bottom, Bottom, Width, Width, Height, Height, Size, Size, Size, Move, Move, Shift, Contains, Contains, Alignment, Align, Id, Id, IsEnabled, Enable, Disable, IsVisible, Visible, Show, Hide, IsActive, Activate, Deactivate, StateFlags, StateFlags, StateFlagsSet, StateFlagsReset, PropFlags, PropFlags, PropFlagsSet, PropFlagsReset, MouseX, MouseX, MouseY, MouseY, MouseFlags, MouseFlags, MouseFocusKill, BringToTop |
CWndContainer
CWndContainer は標準ライブラリの(依存コントロールを含む)複雑なコントロールのクラスです。
説明
CWndContainer クラスは複雑なコントロールの基本メソッドを実装します。
宣言
class CWndContainer : public CWnd |
タイトル
#include <ControlsWndContainer.mqh> |
継承階層 CObject CWnd CWndContainer 直接子孫 CCheckBox, CComboBox, CDateDropList, CDatePicker, CDialog, CRadioButton, CScroll, CSpinEdit, CWndClient |
クラスメソッド
Destroy | |
Destroy | 全てのコンテナコントロールを破壊します。 |
チャートイベントハンドラ | |
OnEvent | 全てのチャートイベントのハンドラ |
OnMouseEvent | CHARTEVENT_MOUSE_MOVE イベントハンドラ |
コンテナへのアクセス | |
ControlsTotal | コンテナのコントロール数を取得します。 |
Control | コントロールをインデックスで取得します。 |
ControlFind | コントロールを識別子で取得します。 |
追加と削除 | |
Add | コンテナにコントロールを追加します。 |
Delete | コンテナからコントロールを削除します。 |
ジオメトリ | |
Move | コンテナの全てのコントロールに新しい座標を設定します。 |
Shift | コンテナの全てのコントロール座標の相対的なシフトを行います。 |
識別 | |
Id | コンテナの全てのコントロールに識別子を設定します。 |
State | |
Enable | コンテナの全てのコントロールを有効にします。 |
Disable | コンテナの全てのコントロールを無効にします。 |
Show | コンテナの全てのコントロールを表示します。 |
Hide | コンテナの全てのコントロールを非表示にします。 |
マウス操作 | |
MouseFocusKill | マウスのフォーカスをなくします。 |
ファイル操作 | |
Save | コンテナ情報をファイルに保存します。 |
Load | コンテナ情報をファイルから読み込みます。 |
内部イベントハンドラ | |
OnResize | 「Resize」イベントハンドラ |
OnActivate | 「Activate」イベントハンドラ |
OnDeactivate | 「Deactivate」イベントハンドラ |
クラスから継承されたメソッド CObject Prev, Prev, Next, Next, Type, Compare |
クラスから継承されたメソッド CWnd Create, Name, ControlsTotal, Control, Rect, Left, Left, Top, Top, Right, Right, Bottom, Bottom, Width, Width, Height, Height, Size, Size, Size, Contains, Contains, Alignment, Align, Id, IsEnabled, IsVisible, Visible, IsActive, Activate, Deactivate, StateFlags, StateFlags, StateFlagsSet, StateFlagsReset, PropFlags, PropFlags, PropFlagsSet, PropFlagsReset, MouseX, MouseX, MouseY, MouseY, MouseFlags, MouseFlags, MouseFocusKill, BringToTop |
CLabel
CLabel は「Text label」チャートオブジェクトに基づいたシンプルコントロールのクラスです。
説明
CLabel はシンプルなラベルの作成に意図されています。
宣言
class CLabel : public CWndObj |
タイトル
#include <ControlsLabel.mqh> |
継承階層 CObject CWnd CWndObj CLabel |
下記のコ—ドの結果:
クラスメソッド
Create | |
Create | コントロールの作成 |
プロパティ変更イベントハンドラ | |
OnSetText | 「SetText」イベントハンドラ |
OnSetColor | 「SetColor」イベントハンドラ |
OnSetFont | 「SetFont」イベントハンドラ |
OnSetFontSize | 「SetFontSize」イベントハンドラ |
内部イベントハンドラ | |
OnCreate | 「Create」イベントハンドラ |
OnShow | 「Show」イベントハンドラ |
OnHide | 「Hide」イベントハンドラ |
OnMove | 「Move」イベントハンドラ |
クラスから継承されたメソッド CObject Prev, Prev, Next, Next, Save, Load, Type, Compare |
クラスから継承されたメソッド CWnd Destroy, OnMouseEvent, Name, ControlsTotal, Control, ControlFind, Rect, Left, Left, Top, Top, Right, Right, Bottom, Bottom, Width, Width, Height, Height, Size, Size, Size, Move, Move, Shift, Contains, Contains, Alignment, Align, Id, Id, IsEnabled, Enable, Disable, IsVisible, Visible, Show, Hide, IsActive, Activate, Deactivate, StateFlags, StateFlags, StateFlagsSet, StateFlagsReset, PropFlags, PropFlags, PropFlagsSet, PropFlagsReset, MouseX, MouseX, MouseY, MouseY, MouseFlags, MouseFlags, MouseFocusKill, BringToTop |
クラスから継承されたメソッド CWndObj OnEvent, Text, Text, Color, Color, ColorBackground, ColorBackground, ColorBorder, ColorBorder, Font, Font, FontSize, FontSize, ZOrder, ZOrder |
テキストラベルを使ったパネルの作成例:
//+——————————————————————+ //| ControlsLabel.mq5 | //| Copyright 2017, MetaQuotes Software Corp. | //| https://www.mql5.com | //+——————————————————————+ #property copyright "Copyright 2017, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property description "Control Panels and Dialogs. Demonstration class CLabel" #include <ControlsDialog.mqh> #include <ControlsLabel.mqh> //+——————————————————————+ //| defines | //+——————————————————————+ //— indents and gaps #define INDENT_LEFT (11) // indent from left (with allowance for border width) #define INDENT_TOP (11) // indent from top (with allowance for border width) #define INDENT_RIGHT (11) // indent from right (with allowance for border width) #define INDENT_BOTTOM (11) // indent from bottom (with allowance for border width) #define CONTROLS_GAP_X (5) // gap by X coordinate #define CONTROLS_GAP_Y (5) // gap by Y coordinate //— for buttons #define BUTTON_WIDTH (100) // size by X coordinate #define BUTTON_HEIGHT (20) // size by Y coordinate //— for the indication area #define EDIT_HEIGHT (20) // size by Y coordinate //— for group controls #define GROUP_WIDTH (150) // size by X coordinate #define LIST_HEIGHT (179) // size by Y coordinate #define RADIO_HEIGHT (56) // size by Y coordinate #define CHECK_HEIGHT (93) // size by Y coordinate //+——————————————————————+ //| Class CControlsDialog | //| Usage: main dialog of the Controls application | //+——————————————————————+ class CControlsDialog : public CAppDialog { private: CLabel m_label; // CLabel object public: CControlsDialog(void); ~CControlsDialog(void); //— create virtual bool Create(const long chart,const string name,const int subwin,const int x1,const int y1,const int x2,const int y2); //— chart event handler virtual bool OnEvent(const int id,const long &lparam,const double &dparam,const string &sparam); protected: //— create dependent controls bool CreateLabel(void); //— handlers of the dependent controls events void OnClickLabel(void); }; //+——————————————————————+ //| Event Handling | //+——————————————————————+ EVENT_MAP_BEGIN(CControlsDialog) EVENT_MAP_END(CAppDialog) //+——————————————————————+ //| Constructor | //+——————————————————————+ CControlsDialog::CControlsDialog(void) { } //+——————————————————————+ //| Destructor | //+——————————————————————+ CControlsDialog::~CControlsDialog(void) { } //+——————————————————————+ //| Create | //+——————————————————————+ bool CControlsDialog::Create(const long chart,const string name,const int subwin,const int x1,const int y1,const int x2,const int y2) { if(!CAppDialog::Create(chart,name,subwin,x1,y1,x2,y2)) return(false); //— create dependent controls if(!CreateLabel()) return(false); //— succeed return(true); } //+——————————————————————+ //| Create the "CLabel" | //+——————————————————————+ bool CControlsDialog::CreateLabel(void) { //— coordinates int x1=INDENT_RIGHT; int y1=INDENT_TOP+CONTROLS_GAP_Y; int x2=x1+100; int y2=y1+20; //— create if(!m_label.Create(m_chart_id,m_name+"Label",m_subwin,x1,y1,x2,y2)) return(false); if(!m_label.Text("Label")) return(false); if(!Add(m_label)) return(false); //— succeed return(true); } //+——————————————————————+ //| Global Variables | //+——————————————————————+ CControlsDialog ExtDialog; //+——————————————————————+ //| Expert initialization function | //+——————————————————————+ int OnInit() { //— create application dialog if(!ExtDialog.Create(0,"Controls",0,40,40,380,344)) return(INIT_FAILED); //— run application ExtDialog.Run(); //— succeed return(INIT_SUCCEEDED); } //+——————————————————————+ //| Expert deinitialization function | //+——————————————————————+ void OnDeinit(const int reason) { //— Comment(""); //— destroy dialog ExtDialog.Destroy(reason); } //+——————————————————————+ //| Expert chart event function | //+——————————————————————+ void OnChartEvent(const int id, // event ID const long& lparam, // event parameter of the long type const double& dparam, // event parameter of the double type const string& sparam) // event parameter of the string type { ExtDialog.ChartEvent(id,lparam,dparam,sparam); } |
CBmpButton
CBmpButton は「Bitmap Label(ビットマップラベル)」チャートオブジェクトに基づいたシンプルコントロールのクラスです。
説明
CBmpButton は、グラフィックイメージのボタン作成に意図されています。
宣言
class CBmpButton : public CWndObj |
タイトル
#include <ControlsBmpButton.mqh> |
継承階層 CObject CWnd CWndObj CBmpButton |
下記のコ—ドの結果:
クラスメソッド
Create | |
Create | コントロールの作成 |
プロパティ | |
Border | コントロールの「Border」プロパティを取得/設定します。 |
BmpNames | コントロールの bmp ファイルの名称を設定します。 |
BmpOffName | OFF 状態での bmp ファイルの名称を取得/設定します。 |
BmpOnName | ON 状態での bmp ファイルの名称を取得/設定します。 |
BmpPassiveName | パッシブ状態での bmp ファイルの名称を取得/設定します。 |
BmpActiveName | アクティブ状態での bmp ファイルの名称を取得/設定します。 |
State | |
Pressed | コントロールの状態を取得/設定します。 |
Locking | コントロールの「Locking」プロパティを取得/設定します。 |
内部イベントハンドラ | |
OnSetZOrder | 「SetZOrder」イベントハンドラ |
OnCreate | 「Create」イベントハンドラ |
OnShow | 「Show」イベントハンドラ |
OnHide | 「Hide」イベントハンドラ |
OnMove | 「Move」イベントハンドラ |
OnChange | 「Change」イベントハンドラ |
OnActivate | 「Activate」イベントハンドラ |
OnDeactivate | 「Deactivate」イベントハンドラ |
OnMouseDown | 「MouseDown」イベントハンドラ |
OnMouseUp | 「MouseUp」イベントハンドラ |
クラスから継承されたメソッド CObject Prev, Prev, Next, Next, Save, Load, Type, Compare |
クラスから継承されたメソッド CWnd Destroy, OnMouseEvent, Name, ControlsTotal, Control, ControlFind, Rect, Left, Left, Top, Top, Right, Right, Bottom, Bottom, Width, Width, Height, Height, Size, Size, Size, Move, Move, Shift, Contains, Contains, Alignment, Align, Id, Id, IsEnabled, Enable, Disable, IsVisible, Visible, Show, Hide, IsActive, Activate, Deactivate, StateFlags, StateFlags, StateFlagsSet, StateFlagsReset, PropFlags, PropFlags, PropFlagsSet, PropFlagsReset, MouseX, MouseX, MouseY, MouseY, MouseFlags, MouseFlags, MouseFocusKill, BringToTop |
クラスから継承されたメソッド CWndObj OnEvent, Text, Text, Color, Color, ColorBackground, ColorBackground, ColorBorder, ColorBorder, Font, Font, FontSize, FontSize, ZOrder, ZOrder |
ビットマップラベルを使ったパネルの作成例:
//+——————————————————————+ //| ControlsBmpButton.mq5 | //| Copyright 2017, MetaQuotes Software Corp. | //| https://www.mql5.com | //+——————————————————————+ #property copyright "Copyright 2017, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property description "Control Panels and Dialogs. Demonstration class CBmpButton" #include <ControlsDialog.mqh> #include <ControlsBmpButton.mqh> //+——————————————————————+ //| defines | //+——————————————————————+ //— indents and gaps #define INDENT_LEFT (11) // indent from left (with allowance for border width) #define INDENT_TOP (11) // indent from top (with allowance for border width) #define INDENT_RIGHT (11) // indent from right (with allowance for border width) #define INDENT_BOTTOM (11) // indent from bottom (with allowance for border width) #define CONTROLS_GAP_X (5) // gap by X coordinate #define CONTROLS_GAP_Y (5) // gap by Y coordinate //— for buttons #define BUTTON_WIDTH (100) // size by X coordinate #define BUTTON_HEIGHT (20) // size by Y coordinate //— for the indication area #define EDIT_HEIGHT (20) // size by Y coordinate //— for group controls #define GROUP_WIDTH (150) // size by X coordinate #define LIST_HEIGHT (179) // size by Y coordinate #define RADIO_HEIGHT (56) // size by Y coordinate #define CHECK_HEIGHT (93) // size by Y coordinate //+——————————————————————+ //| Class CControlsDialog | //| Usage: main dialog of the Controls application | //+——————————————————————+ class CControlsDialog : public CAppDialog { private: CBmpButton m_bmpbutton1; // CBmpButton object CBmpButton m_bmpbutton2; // CBmpButton object public: CControlsDialog(void); ~CControlsDialog(void); //— create virtual bool Create(const long chart,const string name,const int subwin,const int x1,const int y1,const int x2,const int y2); //— chart event handler virtual bool OnEvent(const int id,const long &lparam,const double &dparam,const string &sparam); protected: //— create dependent controls bool CreateBmpButton1(void); bool CreateBmpButton2(void); //— handlers of the dependent controls events void OnClickBmpButton1(void); void OnClickBmpButton2(void); }; //+——————————————————————+ //| Event Handling | //+——————————————————————+ EVENT_MAP_BEGIN(CControlsDialog) ON_EVENT(ON_CLICK,m_bmpbutton1,OnClickBmpButton1) ON_EVENT(ON_CLICK,m_bmpbutton2,OnClickBmpButton2) EVENT_MAP_END(CAppDialog) //+——————————————————————+ //| Constructor | //+——————————————————————+ CControlsDialog::CControlsDialog(void) { } //+——————————————————————+ //| Destructor | //+——————————————————————+ CControlsDialog::~CControlsDialog(void) { } //+——————————————————————+ //| Create | //+——————————————————————+ bool CControlsDialog::Create(const long chart,const string name,const int subwin,const int x1,const int y1,const int x2,const int y2) { if(!CAppDialog::Create(chart,name,subwin,x1,y1,x2,y2)) return(false); //— create dependent controls if(!CreateBmpButton1()) return(false); if(!CreateBmpButton2()) return(false); //— succeed return(true); } //+——————————————————————+ //| Create the "BmpButton1" button | //+——————————————————————+ bool CControlsDialog::CreateBmpButton1(void) { //— coordinates int x1=INDENT_LEFT; int y1=INDENT_TOP+(EDIT_HEIGHT+CONTROLS_GAP_Y); int x2=x1+BUTTON_WIDTH; int y2=y1+BUTTON_HEIGHT; //— create if(!m_bmpbutton1.Create(m_chart_id,m_name+"BmpButton1",m_subwin,x1,y1,x2,y2)) return(false); //— sets the name of bmp files of the control CBmpButton m_bmpbutton1.BmpNames("\Images\euro.bmp","\Images\dollar.bmp"); if(!Add(m_bmpbutton1)) return(false); //— succeed return(true); } //+——————————————————————+ //| Create the "BmpButton2" fixed button | //+——————————————————————+ bool CControlsDialog::CreateBmpButton2(void) { //— coordinates int x1=INDENT_LEFT+2*(BUTTON_WIDTH+CONTROLS_GAP_X); int y1=INDENT_TOP+(EDIT_HEIGHT+CONTROLS_GAP_Y); int x2=x1+BUTTON_WIDTH; int y2=y1+BUTTON_HEIGHT; //— create if(!m_bmpbutton2.Create(m_chart_id,m_name+"BmpButton2",m_subwin,x1,y1,x2,y2)) return(false); //— sets the name of bmp files of the control CBmpButton m_bmpbutton2.BmpNames("\Images\euro.bmp","\Images\dollar.bmp"); if(!Add(m_bmpbutton2)) &nbsnbsp; return(false); m_bmpbutton2.Locking(true); //— succeed return(true); } //+——————————————————————+ //| Event handler | //+——————————————————————+ void CControlsDialog::OnClickBmpButton1(void) { Comment(__FUNCTION__); } //+——————————————————————+ //| Event handler | //+——————————————————————+ void CControlsDialog::OnClickBmpButton2(void) { if(m_bmpbutton2.Pressed()) Comment(__FUNCTION__+" State of the control is: On"); else Comment(__FUNCTION__+" State of the control is: Off"); } //+——————————————————————+ //| Global Variables | //+——————————————————————+ CControlsDialog ExtDialog; //+——————————————————————+ //| Expert initialization function | //+——————————————————————+ int OnInit() { //— create application dialog if(!ExtDialog.Create(0,"Controls",0,40,40,380,344)) return(INIT_FAILED); //— run application ExtDialog.Run(); //— succeed return(INIT_SUCCEEDED); } //+——————————————————————+ //| Expert deinitialization function | //+——————————————————————+ void OnDeinit(const int reason) { //— Comment(""); //— destroy dialog ExtDialog.Destroy(reason); } //+——————————————————————+ //| Expert chart event function | //+——————————————————————+ void OnChartEvent(const int id, // event ID const long& lparam, // event parameter of the long type const double& dparam, // event parameter of the double type const string& sparam) // event parameter of the string type { ExtDialog.ChartEvent(id,lparam,dparam,sparam); } |
CButton
CButton は「Button」チャートオブジェクトに基づいたシンプルコントロールのクラスです。
説明
CButton はシンプルなボタンの作成に意図されています。
宣言
class CButton : public CWndObj |
タイトル
#include <ControlsButton.mqh> |
継承階層 CObject CWnd CWndObj CButton |
下記のコ—ドの結果:
クラスメソッド
Create | |
Create | コントロールの作成 |
State | |
Pressed | 「Pressed」プロパティを取得/設定します。 |
Locking | 「Locking」プロパティを取得/設定します。 |
プロパティ変更イベントハンドラ | |
OnSetText | 「SetText」イベントハンドラ |
OnSetColor | 「SetColor」イベントハンドラ |
OnSetColorBackground | 「SetColorBackground」イベントハンドラ |
OnSetColorBorder | 「SetColorBorder」イベントハンドラ |
OnSetFont | 「SetFont」イベントハンドラ |
OnSetFontSize | 「SetFontSize」イベントハンドラ |
内部イベントハンドラ | |
OnCreate | 「Create」イベントハンドラ |
OnShow | 「Show」イベントハンドラ |
OnHide | 「Hide」イベントハンドラ |
OnMove | 「Move」イベントハンドラ |
OnResize | 「Resize」イベントハンドラ |
OnMouseDown | 「MouseDown」イベントハンドラ |
OnOnMouseUp | 「MouseUp」イベントハンドラ |
クラスから継承されたメソッド CObject Prev, Prev, Next, Next, Save, Load, Type, Compare |
クラスから継承されたメソッド CWnd Destroy, OnMouseEvent, Name, ControlsTotal, Control, ControlFind, Rect, Left, Left, Top, Top, Right, Right, Bottom, Bottom, Width, Width, Height, Height, Size, Size, Size, Move, Move, Shift, Contains, Contains, Alignment, Align, Id, Id, IsEnabled, Enable, Disable, IsVisible, Visible, Show, Hide, IsActive, Activate, Deactivate, StateFlags, StateFlags, StateFlagsSet, StateFlagsReset, PropFlags, PropFlags, PropFlagsSet, PropFlagsReset, MouseX, MouseX, MouseY, MouseY, MouseFlags, MouseFlags, MouseFocusKill, BringToTop |
クラスから継承されたメソッド CWndObj OnEvent, Text, Text, Color, Color, ColorBackground, ColorBackground, ColorBorder, ColorBorder, Font, Font, FontSize, FontSize, ZOrder, ZOrder |
ボタンを使ったパネルの作成例:
//+——————————————————————+ //| ControlsButton.mq5 | //| Copyright 2017, MetaQuotes Software Corp. | //| https://www.mql5.com | //+——————————————————————+ #property copyright "Copyright 2017, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property description "Control Panels and Dialogs. Demonstration class CButton" #include <ControlsDialog.mqh> #include <ControlsButton.mqh> //+——————————————————————+ //| defines | //+——————————————————————+ //— indents and gaps #define INDENT_LEFT (11) // indent from left (with allowance for border width) #define INDENT_TOP (11) // indent from top (with allowance for border width) #define INDENT_RIGHT (11) // indent from right (with allowance for border width) #define INDENT_BOTTOM (11) // indent from bottom (with allowance for border width) #define CONTROLS_GAP_X (5) // gap by X coordinate #define CONTROLS_GAP_Y (5) // gap by Y coordinate //— for buttons #define BUTTON_WIDTH (100) // size by X coordinate #define BUTTON_HEIGHT (20) // size by Y coordinate //— for the indication area #define EDIT_HEIGHT (20) // size by Y coordinate //— for group controls #define GROUP_WIDTH (150) // size by X coordinate #define LIST_HEIGHT (179) // size by Y coordinate #define RADIO_HEIGHT (56) // size by Y coordinate #define CHECK_HEIGHT (93) // size by Y coordinate //+——————————————————————+ //| Class CControlsDialog | //| Usage: main dialog of the Controls application | //+——————————————————————+ class CControlsDialog : public CAppDialog { private: CButton m_button1; // the button object CButton m_button2; // the button object CButton m_button3; // the fixed button object public: CControlsDialog(void); ~CControlsDialog(void); //— create virtual bool Create(const long chart,const string name,const int subwin,const int x1,const int y1,const int x2,const int y2); //— chart event handler virtual bool OnEvent(const int id,const long &lparam,const double &dparam,const string &sparam); protected: //— create dependent controls bool CreateButton1(void); bool CreateButton2(void); bool CreateButton3(void); //— handlers of the dependent controls events void OnClickButton1(void); void OnClickButton2(void); void OnClickButton3(void); }; //+——————————————————————+ //| Event Handling | //+——————————————————————+ EVENT_MAP_BEGIN(CControlsDialog) ON_EVENT(ON_CLICK,m_button1,OnClickButton1) ON_EVENT(ON_CLICK,m_button2,OnClickButton2) ON_EVENT(ON_CLICK,m_button3,OnClickButton3) EVENT_MAP_END(CAppDialog) //+——————————————————————+ //| Constructor | //+——————————————————————+ CControlsDialog::CControlsDialog(void) { } //+——————————————————————+ //| Destructor | //+——————————————————————+ CControlsDialog::~CControlsDialog(void) { } //+——————————————————————+ //| Create | //+——————————————————————+ bool CControlsDialog::Create(const long chart,const string name,const int subwin,const int x1,const int y1,const int x2,const int y2) { if(!CAppDialog::Create(chart,name,subwin,x1,y1,x2,y2)) return(false); //— create dependent controls if(!CreateButton1()) return(false); if(!CreateButton2()) return(false); if(!CreateButton3()) return(false); //— succeed return(true); } //+——————————————————————+ //| Create the "Button1" button | //+——————————————————————+ bool CControlsDialog::CreateButton1(void) { //— coordinates int x1=INDENT_LEFT; int y1=INDENT_TOP+(EDIT_HEIGHT+CONTROLS_GAP_Y); int x2=x1+BUTTON_WIDTH; int y2=y1+BUTTON_HEIGHT; //— create if(!m_button1.Create(m_chart_id,m_name+"Button1",m_subwin,x1,y1,x2,y2)) return(false); if(!m_button1.Text("Button1")) return(false); if(!Add(m_button1)) return(false); //— succeed return(true); } //+——————————————————————+ //| Create the "Button2" button | //+——————————————————————+ bool CControlsDialog::CreateButton2(void) { //— coordinates int x1=INDENT_LEFT+(BUTTON_WIDTH+CONTROLS_GAP_X); int y1=INDENT_TOP+(EDIT_HEIGHT+CONTROLS_GAP_Y); int x2=x1+BUTTON_WIDTH; int y2=y1+BUTTON_HEIGHT; //— create if(!m_button2.Create(m_chart_id,m_name+"Button2",m_subwin,x1,y1,x2,y2)) return(false); if(!m_button2.Text("Button2")) return(false); if(!Add(m_button2)) return(false); //— succeed return(true); } //+——————————————————————+ //| Create the "Button3" fixed button | //+——————————————————————+ bool CControlsDialog::CreateButton3(void) { //— coordinates int x1=INDENT_LEFT+2*(BUTTON_WIDTH+CONTROLS_GAP_X); int y1=INDENT_TOP+(EDIT_HEIGHT+CONTROLS_GAP_Y); int x2=x1+BUTTON_WIDTH; int y2=y1+BUTTON_HEIGHT; //— create if(!m_button3.Create(m_chart_id,m_name+"Button3",m_subwin,x1,y1,x2,y2)) return(false); if(!m_button3.Text("Locked")) return(false); if(!Add(m_button3)) return(false); m_button3.Locking(true); //— succeed return(true); } //+——————————————————————+ //| Event handler | //+——————————————————————+ void CControlsDialog::OnClickButton1(void) { Comment(__FUNCTION__); } //+——————————————————————+ //| Event handler | //+——————————————————————+ void CControlsDialog::OnClickButton2(void) { Comment(__FUNCTION__); } //+——————————————————————+ //| Event handler | //+——————————————————————+ void CControlsDialog::OnClickButton3(void) { if(m_button3.Pressed()) Comment(__FUNCTION__+" State of the control: On"); else Comment(__FUNCTION__+" State of the control: Off"); } //+——————————————————————+ //| Global Variables | //+——————————————————————+ CControlsDialog ExtDialog; //+——————————————————————+ //| Expert initialization function | //+——————————————————————+ int OnInit() { //— create application dialog if(!ExtDialog.Create(0,"Controls",0,40,40,380,344)) return(INIT_FAILED); //— run application ExtDialog.Run(); //— succeed return(INIT_SUCCEEDED); } //+——————————————————————+ //| Expert deinitialization function | //+——————————————————————+ void OnDeinit(const int reason) { //— clear comments Comment(""); //— destroy dialog ExtDialog.Destroy(reason); } //+——————————————————————+ //| Expert chart event function | //+——————————————————————+ void OnChartEvent(const int id, // event ID const long& lparam, // event parameter of the long type const double& dparam, // event parameter of the double type const string& sparam) // event parameter of the string type { ExtDialog.ChartEvent(id,lparam,dparam,sparam); } |
CEdit
CEdit は「Edit」チャートオブジェクトに基づいたシンプルコントロールのクラスです。
説明
CEdit クラスは、ユーザのテキスト入力を可能にするコントロールの作成に意図されています。
宣言
class CEdit : public CWndObj |
タイトル
#include <ControlsEdit.mqh> |
継承階層 CObject CWnd CWndObj CEdit |
下記のコ—ドの結果:
クラスメソッド
Create | |
Create | コントロールの作成 |
プロパティ | |
ReadOnly | 「ReadOnly」プロパティを取得/設定します。 |
TextAlign | 「TextAlign」プロパティを取得/設定します。 |
チャートオブジェクトイベントハンドラ | |
OnObjectEndEdit | CHARTEVENT_OBJECT_ENDEDIT イベントハンドラ(仮想) |
プロパティ変更イベントハンドラ | |
OnSetText | 「SetText」イベントハンドラ |
OnSetColor | 「SetColor」イベントハンドラ |
OnSetColorBackground | 「SetColorBackground」イベントハンドラ |
OnSetColorBorder | 「SetColorBorder」イベントハンドラ |
OnSetFont | 「SetFont」イベントハンドラ |
OnSetFontSize | 「SetFontSize」イベントハンドラ |
OnSetZOrder | 「SetZOrder」イベントハンドラ |
内部イベントハンドラ | |
OnCreate | 「Create」イベントハンドラ |
OnShow | 「Show」イベントハンドラ |
OnHide | 「Hide」イベントハンドラ |
OnMove | 「Move」イベントハンドラ |
OnResize | 「Resize」イベントハンドラ |
OnChange | 「Change」イベントハンドラ |
OnClick | 「Click」イベントハンドラ |
クラスから継承されたメソッド CObject Prev, Prev, Next, Next, Save, Load, Type, Compare |
クラスから継承されたメソッド CWnd Destroy, OnMouseEvent, Name, ControlsTotal, Control, ControlFind, Rect, Left, Left, Top, Top, Right, Right, Bottom, Bottom, Width, Width, Height, Height, Size, Size, Size, Move, Move, Shift, Contains, Contains, Alignment, Align, Id, Id, IsEnabled, Enable, Disable, IsVisible, Visible, Show, Hide, IsActive, Activate, Deactivate, StateFlags, StateFlags, StateFlagsSet, StateFlagsReset, PropFlags, PropFlags, PropFlagsSet, PropFlagsReset, MouseX, MouseX, MouseY, MouseY, MouseFlags, MouseFlags, MouseFocusKill, BringToTop |
クラスから継承されたメソッド CWndObj Text, Text, Color, Color, ColorBackground, ColorBackground, ColorBorder, ColorBorder, Font, Font, FontSize, FontSize, ZOrder, ZOrder |
エディットを使ったパネルの作成例:
//+——————————————————————+ //| ControlsEdit.mq5 | //| Copyright 2017, MetaQuotes Software Corp. | //| https://www.mql5.com | //+——————————————————————+ #property copyright "Copyright 2017, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property description "Control Panels and Dialogs. Demonstration class CEdit" #include <ControlsDialog.mqh> #include <ControlsEdit.mqh> //+——————————————————————+ //| defines | //+——————————————————————+ //— indents and gaps #define INDENT_LEFT (11) // indent from left (with allowance for border width) #define INDENT_TOP (11) // indent from top (with allowance for border width) #define INDENT_RIGHT (11) // indent from right (with allowance for border width) #define INDENT_BOTTOM (11) // indent from bottom (with allowance for border width) #define CONTROLS_GAP_X (5) // gap by X coordinate #define CONTROLS_GAP_Y (5) // gap by Y coordinate //— for buttons #define BUTTON_WIDTH (100) // size by X coordinate #define BUTTON_HEIGHT (20) // size by Y coordinate //— for the indication area #define EDIT_HEIGHT (20) // size by Y coordinate //— for group controls #define GROUP_WIDTH (150) // size by X coordinate #define LIST_HEIGHT (179) // size by Y coordinate #define RADIO_HEIGHT (56) // size by Y coordinate #define CHECK_HEIGHT (93) // size by Y coordinate //+——————————————————————+ //| Class CControlsDialog | //| Usage: main dialog of the Controls application | //+——————————————————————+ class CControlsDialog : public CAppDialog { private: CEdit m_edit; // CEdit object public: CControlsDialog(void); ~CControlsDialog(void); //— create virtual bool Create(const long chart,const string name,const int subwin,const int x1,const int y1,const int x2,const int y2); //— chart event handler protected: //— create dependent controls bool CreateEdit(void); }; //+——————————————————————+ //| Constructor | //+——————————————————————+ CControlsDialog::CControlsDialog(void) { } //+——————————————————————+ //| Destructor | //+——————————————————————+ CControlsDialog::~CControlsDialog(void) { } //+——————————————————————+ //| Create | //+——————————————————————+ bool CControlsDialog::Create(const long chart,const string name,const int subwin,const int x1,const int y1,const int x2,const int y2) { if(!CAppDialog::Create(chart,name,subwin,x1,y1,x2,y2)) return(false); //— create dependent controls if(!CreateEdit()) return(false); //— succeed return(true); } //+——————————————————————+ //| Create the display field | //+——————————————————————+ bool CControlsDialog::CreateEdit(void) { //— coordinates int x1=INDENT_LEFT; int y1=INDENT_TOP; int x2=ClientAreaWidth()-INDENT_RIGHT; int y2=y1+EDIT_HEIGHT; //— create if(!m_edit.Create(m_chart_id,m_name+"Edit",m_subwin,x1,y1,x2,y2)) return(false); //— allow editing the content if(!m_edit.ReadOnly(false)) return(false); if(!Add(m_edit)) return(false); //— succeed return(true); } //+——————————————————————+ //| Global Variables | //+——————————————————————+ CControlsDialog ExtDialog; //+——————————————————————+ //| Expert initialization function | //+——————————————————————+ int OnInit() { //— create application dialog if(!ExtDialog.Create(0,"Controls",0,40,40,380,344)) return(INIT_FAILED); //— run application ExtDialog.Run(); //— succeed return(INIT_SUCCEEDED); } //+——————————————————————+ //| Expert deinitialization function | //+——————————————————————+ void OnDeinit(const int reason) { //— clear comments Comment(""); //— destroy dialog ExtDialog.Destroy(reason); } //+——————————————————————+ //| Expert chart event function | //+——————————————————————+ void OnChartEvent(const int id, // event ID const long& lparam, // event parameter of the long type const double& dparam, // event parameter of the double type const string& sparam) // event parameter of the string type { ExtDialog.ChartEvent(id,lparam,dparam,sparam); } |
CPanel
CPanel は「Rectangle label」チャートオブジェクトに基づいたシンプルコントロールのクラスです。
説明
CPanel クラスは、グループ内のいろいろなの関数の制御を組み合わせることを意図しています。
宣言
class CPanel : public CWndObj |
タイトル
#include <ControlsPanel.mqh> |
継承階層 CObject CWnd CWndObj CPanel |
下記のコ—ドの結果:
クラスメソッド
Create | |
Create | コントロールの作成 |
チャートオブジェクトプロパティ | |
BorderType | チャートオブジェクトの「BorderType」プロパティを取得します。 |
チャートオブジェクトイベントハンドラ | |
OnSetText | 「SetText」イベントハンドラ |
OnSetColorBackground | 「SetColorBackground」イベントハンドラ |
OnSetColorBorder | 「SetColorBorder」イベントハンドラ |
内部イベントハンドラ | |
OnCreate | 「Create」イベントハンドラ |
OnShow | 「Show」イベントハンドラ |
OnHide | 「Hide」イベントハンドラ |
OnMove | 「Move」イベントハンドラ |
OnResize | 「Resize」イベントハンドラ |
OnChange | 「Change」イベントハンドラ |
クラスから継承されたメソッド CObject Prev, Prev, Next, Next, Save, Load, Type, Compare |
クラスから継承されたメソッド CWnd Destroy, OnMouseEvent, Name, ControlsTotal, Control, ControlFind, Rect, Left, Left, Top, Top, Right, Right, Bottom, Bottom, Width, Width, Height, Height, Size, Size, Size, Move, Move, Shift, Contains, Contains, Alignment, Align, Id, Id, IsEnabled, Enable, Disable, IsVisible, Visible, Show, Hide, IsActive, Activate, Deactivate, StateFlags, StateFlags, StateFlagsSet, StateFlagsReset, PropFlags, PropFlags, PropFlagsSet, PropFlagsReset, MouseX, MouseX, MouseY, MouseY, MouseFlags, MouseFlags, MouseFocusKill, BringToTop |
クラスから継承されたメソッド CWndObj OnEvent, Text, Text, Color, Color, ColorBackground, ColorBackground, ColorBorder, ColorBorder, Font, Font, FontSize, FontSize, ZOrder, ZOrder |
四角形ラベルを使ったパネルの作成例:
//+——————————————————————+ //| ControlsPanel.mq5 | //| Copyright 2017, MetaQuotes Software Corp. | //| https://www.mql5.com | //+——————————————————————+ #property copyright "Copyright 2017, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property description "Control Panels and Dialogs. Demonstration class CPanel" #include <ControlsDialog.mqh> //+——————————————————————+ //| defines | //+——————————————————————+ //— indents and gaps #define INDENT_LEFT (11) // indent from left (with allowance for border width) #define INDENT_TOP (11) // indent from top (with allowance for border width) #define INDENT_RIGHT (11) // indent from right (with allowance for border width) #define INDENT_BOTTOM (11) // indent from bottom (with allowance for border width) #define CONTROLS_GAP_X (5) // gap by X coordinate #define CONTROLS_GAP_Y (5) // gap by Y coordinate //— for buttons #define BUTTON_WIDTH (100) // size by X coordinate #define BUTTON_HEIGHT (20) // size by Y coordinate //— for the indication area #define EDIT_HEIGHT (20) // size by Y coordinate //— for group controls #define GROUP_WIDTH (150) // size by X coordinate #define LIST_HEIGHT (179) // size by Y coordinate #define RADIO_HEIGHT (56) // size by Y coordinate #define CHECK_HEIGHT (93) // size by Y coordinate //+——————————————————————+ //| Class CControlsDialog | //| Usage: main dialog of the Controls application | //+——————————————————————+ class CControlsDialog : public CAppDialog { public: CControlsDialog(void); ~CControlsDialog(void); //— create virtual bool Create(const long chart,const string name,const int subwin,const int x1,const int y1,const int x2,const int y2); protected: //— create dependent controls bool CreatePanel(void); }; //+——————————————————————+ //| Constructor | //+——————————————————————+ CControlsDialog::CControlsDialog(void) { } //+——————————————————————+ //| Destructor | //+——————————————————————+ CControlsDialog::~CControlsDialog(void) { } //+——————————————————————+ //| Create | //+——————————————————————+ bool CControlsDialog::Create(const long chart,const string name,const int subwin,const int x1,const int y1,const int x2,const int y2) { if(!CAppDialog::Create(chart,name,subwin,x1,y1,x2,y2)) return(false); //— create dependent controls if(!CreatePanel()) return(false); //— succeed return(true); } //+——————————————————————+ //| Create the "CPanel" | //+——————————————————————+ bool CControlsDialog::CreatePanel(void) { //— coordinates int x1=20; int y1=20; int x2=ExtDialog.Width()/3; int y2=ExtDialog.Height()/3; //— create if(!my_white_border.Create(0,ExtDialog.Name()+"MyWhiteBorder",m_subwin,x1,y1,x2,y2)) return(false); if(!my_white_border.ColorBackground(CONTROLS_DIALOG_COLOR_BG)) return(false); if(!my_white_border.ColorBorder(CONTROLS_DIALOG_COLOR_BORDER_LIGHT)) return(false); if(!ExtDialog.Add(my_white_border)) return(false); my_white_border.Alignment(WND_ALIGN_CLIENT,0,0,0,0); //— succeed return(true); } //+——————————————————————+ //| Global Variables | //+——————————————————————+ CControlsDialog ExtDialog; //— CPanel my_white_border; // object CPanel bool pause=true; // true – pause //+——————————————————————+ //| Expert initialization function | //+——————————————————————+ int OnInit() { //— EventSetTimer(3); pause=true; //— create application dialog if(!ExtDialog.Create(0,"Controls",0,40,40,380,344)) return(INIT_FAILED); //— run application ExtDialog.Run(); //— succeed return(INIT_SUCCEEDED); } //+——————————————————————+ //| Expert deinitialization function | //+——————————————————————+ void OnDeinit(const int reason) { //— clear comments Comment(""); //— destroy dialog ExtDialog.Destroy(reason); } //+——————————————————————+ //| Expert chart event function | //+——————————————————————+ void OnChartEvent(const int id, // event ID const long& lparam, // event parameter of the long type const double& dparam, // event parameter of the double type const string& sparam) // event parameter of the string type { ExtDialog.ChartEvent(id,lparam,dparam,sparam); } //+——————————————————————+ //| Timer | //+——————————————————————+ void OnTimer() { pause=!pause; } |
CPicture
CPicture は「Bitmap Label(ビットマップラベル)」チャートオブジェクトに基づいたシンプルコントロールのクラスです。
説明
CPicture クラスは、シンプルなグラフィックイメージの作成に意図されています。
宣言
class CPicture : public CWndObj |
タイトル
#include <ControlsPicture.mqh> |
継承階層 CObject CWnd CWndObj CPicture |
下記のコ—ドの結果:
クラスメソッド
Create | |
Create | コントロールの作成 |
チャートオブジェクトプロパティ | |
Border | チャートオブジェクトの幅を取得/設定します。 |
BmpName | コントロールの bmp ファイルの名称を取得/設定します。 |
内部イベント | |
OnCreate | 「Create」イベントハンドラ |
OnShow | 「Show」イベントハンドラ |
OnHide | 「Hide」イベントハンドラ |
OnMove | 「Move」イベントハンドラ |
OnChange | 「Change」イベントハンドラ |
クラスから継承されたメソッド CObject Prev, Prev, Next, Next, Save, Load, Type, Compare |
クラスから継承されたメソッド CWnd Destroy, OnMouseEvent, Name, ControlsTotal, Control, ControlFind, Rect, Left, Left, Top, Top, Right, Right, Bottom, Bottom, Width, Width, Height, Height, Size, Size, Size, Move, Move, Shift, Contains, Contains, Alignment, Align, Id, Id, IsEnabled, Enable, Disable, IsVisible, Visible, Show, Hide, IsActive, Activate, Deactivate, StateFlags, StateFlags, StateFlagsSet, StateFlagsReset, PropFlags, PropFlags, PropFlagsSet, PropFlagsReset, MouseX, MouseX, MouseY, MouseY, MouseFlags, MouseFlags, MouseFocusKill, BringToTop |
クラスから継承されたメソッド CWndObj OnEvent, Text, Text, Color, Color, ColorBackground, ColorBackground, ColorBorder, ColorBorder, Font, Font, FontSize, FontSize, ZOrder, ZOrder |
ビットマップラベルを使ったパネルの作成例:
//+——————————————————————+ //| ControlsPicture.mq5 | //| Copyright 2017, MetaQuotes Software Corp. | //| https://www.mql5.com | //+——————————————————————+ #property copyright "Copyright 2017, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property description "Control Panels and Dialogs. Demonstration class CPicture" #include <ControlsDialog.mqh> #include <ControlsPicture.mqh> //+——————————————————————+ //| defines | //+——————————————————————+ //— indents and gaps #define INDENT_LEFT (11) // indent from left (with allowance for border width) #define INDENT_TOP (11) // indent from top (with allowance for border width) #define INDENT_RIGHT (11) // indent from right (with allowance for border width) #define INDENT_BOTTOM (11) // indent from bottom (with allowance for border width) #define CONTROLS_GAP_X (5) // gap by X coordinate #define CONTROLS_GAP_Y (5) // gap by Y coordinate //— for buttons #define BUTTON_WIDTH (100) // size by X coordinate #define BUTTON_HEIGHT (20) // size by Y coordinate //— for the indication area #define EDIT_HEIGHT (20) // size by Y coordinate //— for group controls #define GROUP_WIDTH (150) // size by X coordinate #define LIST_HEIGHT (179) // size by Y coordinate #define RADIO_HEIGHT (56) // size by Y coordinate #define CHECK_HEIGHT (93) // size by Y coordinate //+——————————————————————+ //| Class CControlsDialog | //| Usage: main dialog of the Controls application | //+——————————————————————+ class CControlsDialog : public CAppDialog { private: CPicture m_picture; // CPicture object public: CControlsDialog(void); ~CControlsDialog(void); //— create virtual bool Create(const long chart,const string name,const int subwin,const int x1,const int y1,const int x2,const int y2); //— chart event handler virtual bool OnEvent(const int id,const long &lparam,const double &dparam,const string &sparam); protected: //— create dependent controls bool CreatePicture(void); //— handlers of the dependent controls events void OnClickPicture(void); }; //+——————————————————————+ //| Event Handling | //+——————————————————————+ EVENT_MAP_BEGIN(CControlsDialog) ON_EVENT(ON_CLICK,m_picture,OnClickPicture) EVENT_MAP_END(CAppDialog) //+——————————————————————+ //| Constructor | //+——————————————————————+ CControlsDialog::CControlsDialog(void) { } //+——————————————————————+ //| Destructor | //+——————————————————————+ CControlsDialog::~CControlsDialog(void) { } //+——————————————————————+ //| Create | //+——————————————————————+ bool CControlsDialog::Create(const long chart,const string name,const int subwin,const int x1,const int y1,const int x2,const int y2) { if(!CAppDialog::Create(chart,name,subwin,x1,y1,x2,y2)) return(false); //— create dependent controls if(!CreatePicture()) return(false); //— succeed return(true); } //+——————————————————————+ //| Create the "Picture"  nbsp; | //+——————————————————————+ bool CControlsDialog::CreatePicture(void) { //— coordinates int x1=INDENT_LEFT; int y1=INDENT_TOP+(EDIT_HEIGHT+CONTROLS_GAP_Y); int x2=x1+32; int y2=y1+32; //— create if(!m_picture.Create(m_chart_id,m_name+"Picture",m_subwin,x1,y1,x2,y2)) return(false); //— set the name of bmp files to display the CPicture control m_picture.BmpName("\Images\euro.bmp"); if(!Add(m_picture)) return(false); //— succeed return(true); } //+——————————————————————+ //| Event handler | //+——————————————————————+ void CControlsDialog::OnClickPicture(void) { Comment(__FUNCTION__); } //+——————————————————————+ //| Global Variables | //+——————————————————————+ CControlsDialog ExtDialog; //+——————————————————————+ //| Expert initialization function | //+——————————————————————+ int OnInit() { //— create application dialog if(!ExtDialog.Create(0,"Controls",0,40,40,380,344)) return(INIT_FAILED); //— run application ExtDialog.Run(); //— succeed return(INIT_SUCCEEDED); } //+——————————————————————+ //| Expert deinitialization function | //+——————————————————————+ void OnDeinit(const int reason) { //— clear comments Comment(""); //— destroy dialog ExtDialog.Destroy(reason); } //+——————————————————————+ //| Expert chart event function | //+——————————————————————+ void OnChartEvent(const int id, // event ID const long& lparam, // event parameter of the long type const double& dparam, // event parameter of the double type const string& sparam) // event parameter of the string type { ExtDialog.ChartEvent(id,lparam,dparam,sparam); } |
CScroll
CScroll はスクロールバーの基本クラスです。
説明
CScroll は(依存コントロールを含む)複雑なコントロールで、スクロールバー作成の基本的な機能を含みます。基本クラスはそれ自体のコントロールとしては使用されず、2 つの派生クラス(CScrollV 及び CScrollH クラス)がコントロールとして使用されます。
宣言
class CScroll : public CWndContainer |
タイトル
#include <ControlsScrolls.mqh> |
継承階層 CObject CWnd CWndContainer CScroll 直接子孫 CScrollH, CScrollV |
クラスメソッド
Create | |
Create | コントロールの作成 |
チャートオブジェクトイベントハンドラ | |
OnEvent | 全てのチャートイベントのハンドラ |
プロパティ | |
MinPos | 最小位置を取得/設定します。 |
MaxPos | 最大位置を取得/設定します。 |
CurrPos | 現在位置を取得/設定します。 |
依存コントロールの作成 | |
CreateBack | 背景ボタンを作成します。 |
CreateInc | スクロールバーのインクリメントボタンを作成します。 |
CreateDec | スクロールバーのデクリメントボタンを作成します。 |
CreateThumb | スクロールバーの(ドラッグ可能な)サムボタンを作成します。 |
依存コントロールのイベントハンドラ | |
OnClickInc | インクリメントボタンイベント処理に使用されるイベントハンドラ |
OnClickDec | デクリメントボタンイベント処理に使用されるイベントハンドラ |
内部イベントハンドラ | |
OnShow | 「Create」イベントハンドラ |
OnHide | 「Hide」イベントハンドラ |
OnChangePos | 「ChangePosition」イベントハンドラ |
オブジェクトドラッグハンドラ | |
OnThumbDragStart | 「ThumbDragStart」イベントハンドラ |
OnThumbDragProcess | 「ThumbDragProcess」イベントハンドラ |
OnThumbDragEnd | 「ThumbDragEnd」イベントハンドラ |
位置 | |
CalcPos | スクロールバーの位置を座標で取得します。 |
クラスから継承されたメソッド CObject Prev, Prev, Next, Next, Type, Compare |
クラスから継承されたメソッド CWnd Name, ControlsTotal, Control, Rect, Left, Left, Top, Top, Right, Right, Bottom, Bottom, Width, Width, Height, Height, Size, Size, Size, Contains, Contains, Alignment, Align, Id, IsEnabled, IsVisible, Visible, IsActive, Activate, Deactivate, StateFlags, StateFlags, StateFlagsSet, StateFlagsReset, PropFlags, PropFlags, PropFlagsSet, PropFlagsReset, MouseX, MouseX, MouseY, MouseY, MouseFlags, MouseFlags, MouseFocusKill, BringToTop |
クラスから継承されたメソッド CWndContainer Destroy, OnMouseEvent, ControlsTotal, Control, ControlFind, MouseFocusKill, Add, Add, Delete, Delete, Move, Move, Shift, Id, Enable, Disable, Show, Hide, Save, Load |
CScrollV
CScrollV は「Vertical scroll bar」の複雑なコントロールのクラスです。
説明
CScrollV クラスは垂直方向のスクロールバーの作成に意図されています。
宣言
class CScrollV : public CScroll |
タイトル
#include <ControlsScrolls.mqh> |
継承階層 CObject CWnd CWndContainer CScroll CScrollV |
下記のコ—ドの結果:
クラスメソッド
依存コントロール | |
CreateInc | スクロールバーのインクレメントボタンを作成します。 |
CreateDec | スクロールバーのデクレメントボタンを作成します。 |
CreateThumb | スクロールバーの(ドラッグ可能な)サムボタンを作成します。 |
内部イベントハンドラ | |
OnResize | 「Resize」イベントハンドラ |
OnChangePos | 「ChangePosition」イベントハンドラ |
ドラッグイベントハンドラ | |
OnThumbDragStart | 「ThumbDragStart」イベントハンドラ |
OnThumbDragProcess | 「ThumbDragProcess」イベントハンドラ |
OnThumbDragEnd | 「ThumbDragEnd」イベントハンドラ |
位置 | |
CalcPos | スクロールバーの位置を座標で取得します。 |
クラスから継承されたメソッド CObject Prev, Prev, Next, Next, Type, Compare |
クラスから継承されたメソッド CWnd Name, ControlsTotal, Control, Rect, Left, Left, Top, Top, Right, Right, Bottom, Bottom, Width, Width, Height, Height, Size, Size, Size, Contains, Contains, Alignment, Align, Id, IsEnabled, IsVisible, Visible, IsActive, Activate, Deactivate, StateFlags, StateFlags, StateFlagsSet, StateFlagsReset, PropFlags, PropFlags, PropFlagsSet, PropFlagsReset, MouseX, MouseX, MouseY, MouseY, MouseFlags, MouseFlags, MouseFocusKill, BringToTop |
クラスから継承されたメソッド CWndContainer Destroy, OnMouseEvent, ControlsTotal, Control, ControlFind, MouseFocusKill, Add, Add, Delete, Delete, Move, Move, Shift, Id, Enable, Disable, Show, Hide, Save, Load |
クラスから継承されたメソッド CScroll Create, OnEvent, MinPos, MinPos, MaxPos, MaxPos, CurrPos, CurrPos |
縦方向のスクロールバーを使ったパネルの作成例:
//+——————————————————————+ //| ControlsScrollV.mq5 | //| Copyright 2017, MetaQuotes Software Corp. | //| https://www.mql5.com | //+——————————————————————+ #property copyright "Copyright 2017, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property description "Control Panels and Dialogs. Demonstration class CScrollV" #include <ControlsDialog.mqh> #include <ControlsScrolls.mqh> //+——————————————————————+ //| defines | //+——————————————————————+ //— indents and gaps #define INDENT_LEFT (11) // indent from left (with allowance for border width) #define INDENT_TOP (11) // indent from top (with allowance for border width) #define INDENT_RIGHT (11) // indent from right (with allowance for border width) #define INDENT_BOTTOM (11) // indent from bottom (with allowance for border width) #define CONTROLS_GAP_X (5) // gap by X coordinate #define CONTROLS_GAP_Y (5) // gap by Y coordinate //— for buttons #define BUTTON_WIDTH (100) // size by X coordinate #define BUTTON_HEIGHT (20) // size by Y coordinate //— for the indication area #define EDIT_HEIGHT (20) // size by Y coordinate //— for group controls #define GROUP_WIDTH (150) // size by X coordinate #define LIST_HEIGHT (179) // size by Y coordinate #define RADIO_HEIGHT (56) // size by Y coordinate #define CHECK_HEIGHT (93) // size by Y coordinate //+——————————————————————+ //| Class CControlsDialog | //| Usage: main dialog of the Controls application | //+——————————————————————+ class CControlsDialog : public CAppDialog { private: CScrollV m_scroll_v; // CScrollV object public: CControlsDialog(void); ~CControlsDialog(void); //— create virtual bool Create(const long chart,const string name,const int subwin,const int x1,const int y1,const int x2,const int y2); //— chart event handler virtual bool OnEvent(const int id,const long &lparam,const double &dparam,const string &sparam); protected: //— create dependent controls bool CreateScrollV(void); //— handlers of the dependent controls events void OnScrollInc(void); void OnScrollDec(void); }; //+——————————————————————+ //| Event Handling | //+——————————————————————+ EVENT_MAP_BEGIN(CControlsDialog) ON_EVENT(ON_SCROLL_INC,m_scroll_v,OnScrollInc) ON_EVENT(ON_SCROLL_DEC,m_scroll_v,OnScrollDec) EVENT_MAP_END(CAppDialog) //+——————————————————————+ //| Constructor | //+——————————————————————+ CControlsDialog::CControlsDialog(void) { } //+——————————————————————+ //| Destructor | //+——————————————————————+ CControlsDialog::~CControlsDialog(void) { } //+——————————————————————+ //| Create | //+——————————————————————+ bool CControlsDialog::Create(const long chart,const string name,const int subwin,const int x1,const int y1,const int x2,const int y2) { if(!CAppDialog::Create(chart,name,subwin,x1,y1,x2,y2)) return(false); //— create dependent controls if(!CreateScrollV()) return(false); //— succeed return(true); } //+——————————————————————+ //| Create the CScrollsV object | //+——————————————————————+ bool CControlsDialog::CreateScrollV(void) { //— coordinates int x1=INDENT_LEFT; int y1=INDENT_TOP; int x2=x1+18; int y2=y1+LIST_HEIGHT; //— create if(!m_scroll_v.Create(m_chart_id,m_name+"ScrollV",m_subwin,x1,y1,x2,y2)) return(false); //— set up the scrollbar m_scroll_v.MinPos(0); //— set up the scrollbar m_scroll_v.MaxPos(10); if(!Add(m_scroll_v)) return(false); Comment("Position of the scrollbar ",m_scroll_v.CurrPos()); //— succeed return(true); } //+——————————————————————+ //| Event handler | //+——————————————————————+ void CControlsDialog::OnScrollInc(void) { Comment("Position of the scrollbar ",m_scroll_v.CurrPos()); } //+——————————————————————+ //| Event handler | //+——————————————————————+ void CControlsDialog::OnScrollDec(void) { Comment("Position of the scrollbar ",m_scroll_v.CurrPos()); } //+——————————————————————+ //| Global Variables | //+——————————————————————+ CControlsDialog ExtDialog; //+——————————————————————+ //| Expert initialization function | //+——————————————————————+ int OnInit() { //— create application dialog if(!ExtDialog.Create(0,"Controls",0,40,40,380,344)) return(INIT_FAILED); //— run application ExtDialog.Run(); //— succeed return(INIT_SUCCEEDED); } //+——————————————————————+ //| Expert deinitialization function | //+——————————————————————+ void OnDeinit(const int reason) { //— clear comments Comment(""); //— destroy dialog ExtDialog.Destroy(reason); } //+——————————————————————+ //| Expert chart event function | //+——————————————————————+ void OnChartEvent(const int id, // event ID const long& lparam, // event parameter of the long type const double& dparam, // event parameter of the double type const string& sparam) // event parameter of the string type { ExtDialog.ChartEvent(id,lparam,dparam,sparam); } |
CScrollH
CScrollH は 「Horizontal scroll bar」の複雑なコントロールのクラスです。
説明
CScrollH クラスは水平方向のスクロールバーの作成に意図されています。
宣言
class CScrollH : public CScroll |
タイトル
#include <ControlsScrolls.mqh> |
継承階層 CObject CWnd CWndContainer CScroll CScrollH |
下記のコ—ドの結果:
クラスメソッド
依存コントロール | |
CreateInc | スクロールバーのインクレメントボタンを作成します。 |
CreateDec | スクロールバーのデクレメントボタンを作成します。 |
CreateThumb | スクロールバーの(ドラッグ可能な)サムボタンを作成します。 |
内部イベントハンドラ | |
OnResize | 「Resize」イベントハンドラ |
OnChangePos | 「ChangePosition」イベントハンドラ |
ドラッグイベントハンドラ | |
OnThumbDragStart | 「ThumbDragStart」イベントハンドラ |
OnThumbDragProcess | 「ThumbDragProcess」イベントハンドラ |
OnThumbDragEnd | 「ThumbDragEnd」イベントハンドラ |
位置 | |
CalcPos | スクロールバーの位置を座標で取得します。 |
クラスから継承されたメソッド CObject Prev, Prev, Next, Next, Type, Compare |
クラスから継承されたメソッド CWnd Name, ControlsTotal, Control, Rect, Left, Left, Top, Top, Right, Right, Bottom, Bottom, Width, Width, Height, Height, Size, Size, Size, Contains, Contains, Alignment, Align, Id, IsEnabled, IsVisible, Visible, IsActive, Activate, Deactivate, StateFlags, StateFlags, StateFlagsSet, StateFlagsReset, PropFlags, PropFlags, PropFlagsSet, PropFlagsReset, MouseX, MouseX, MouseY, MouseY, MouseFlags, MouseFlags, MouseFocusKill, BringToTop |
クラスから継承されたメソッド CWndContainer Destroy, OnMouseEvent, ControlsTotal, Control, ControlFind, MouseFocusKill, Add, Add, Delete, Delete, Move, Move, Shift, Id, Enable, Disable, Show, Hide, Save, Load |
クラスから継承されたメソッド CScroll Create, OnEvent, MinPos, MinPos, MaxPos, MaxPos, CurrPos, CurrPos |
鉾方向のスクロールバーを使ったパネルの作成例:
//+——————————————————————+ //| ControlsScrollH.mq5 | //| Copyright 2017, MetaQuotes Software Corp. | //| https://www.mql5.com | //+——————————————————————+ #property copyright "Copyright 2017, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property description "Control Panels and Dialogs. Demonstration class CScrollH" #include <ControlsDialog.mqh> #include <ControlsScrolls.mqh> //+——————————————————————+ //| defines | //+——————————————————————+ //— indents and gaps #define INDENT_LEFT (11) // indent from left (with allowance for border width) #define INDENT_TOP (11) // indent from top (with allowance for border width) #define INDENT_RIGHT (11) // indent from right (with allowance for border width) #define INDENT_BOTTOM (11) // indent from bottom (with allowance for border width) #define CONTROLS_GAP_X (5) // gap by X coordinate #define CONTROLS_GAP_Y (5) // gap by Y coordinate //— for buttons #define BUTTON_WIDTH (100) // size by X coordinate #define BUTTON_HEIGHT (20) // size by Y coordinate //— for the indication area #define EDIT_HEIGHT (20) // size by Y coordinate //— for group controls #define GROUP_WIDTH (150) // size by X coordinate #define LIST_HEIGHT (179) // size by Y coordinate #define RADIO_HEIGHT (56) // size by Y coordinate #define CHECK_HEIGHT (93) // size by Y coordinate //+——————————————————————+ //| Class CControlsDialog | //| Usage: main dialog of the Controls application | //+——————————————————————+ class CControlsDialog : public CAppDialog { private: CScrollH m_scroll_v; // CScrollH object public: CControlsDialog(void); ~CControlsDialog(void); //— create virtual bool Create(const long chart,const string name,const int subwin,const int x1,const int y1,const int x2,const int y2); //— chart event handler virtual bool OnEvent(const int id,const long &lparam,const double &dparam,const string &sparam); protected: //— create dependent controls bool CreateScrollsH(void); //— handlers of the dependent controls events void OnScrollInc(void); void OnScrollDec(void); }; //+——————————————————————+ //| Event Handling | //+——————————————————————+ EVENT_MAP_BEGIN(CControlsDialog) ON_EVENT(ON_SCROLL_INC,m_scroll_v,OnScrollInc) ON_EVENT(ON_SCROLL_DEC,m_scroll_v,OnScrollDec) EVENT_MAP_END(CAppDialog) //+——————————————————————+ //| Constructor | //+——————————————————————+ CControlsDialog::CControlsDialog(void) { } //+——————————————————————+ //| Destructor | //+——————————————————————+ CControlsDialog::~CControlsDialog(void) { } //+——————————————————————+ //| Create | //+——————————————————————+ bool CControlsDialog::Create(const long chart,const string name,const int subwin,const int x1,const int y1,const int x2,const int y2) { if(!CAppDialog::Create(chart,name,subwin,x1,y1,x2,y2)) return(false); //— create dependent controls if(!CreateScrollsH()) return(false); //— succeed return(true); } //+——————————————————————+ //| Create the CScrollsH object | //+——————————————————————+ bool CControlsDialog::CreateScrollsH(void) { //— coordinates int x1=INDENT_LEFT; int y1=INDENT_TOP; int x2=x1+3*BUTTON_WIDTH; int y2=y1+18; //— create if(!m_scroll_v.Create(m_chart_id,m_name+"ScrollsH",m_subwin,x1,y1,x2,y2)) return(false); //— set up the scrollbar m_scroll_v.MinPos(0); //— set up the scrollbar m_scroll_v.MaxPos(10); if(!Add(m_scroll_v)) return(false); Comment("Position of the scrollbar ",m_scroll_v.CurrPos()); //— succeed return(true); } //+——————————————————————+ //| Event handler | //+——————————————————————+ void CControlsDialog::OnScrollInc(void) { Comment("Position of the scrollbar ",m_scroll_v.CurrPos()); } //+——————————————————————+ //| Event handler | //+——————————————————————+ void CControlsDialog::OnScrollDec(void) { Comment("Position of the scrollbar ",m_scroll_v.CurrPos()); } //+——————————————————————+ //| Global Variables | //+——————————————————————+ CControlsDialog ExtDialog; //+——————————————————————+ //| Expert initialization function | //+——————————————————————+ int OnInit() { //— create application dialog if(!ExtDialog.Create(0,"Controls",0,40,40,380,344)) return(INIT_FAILED); //— run application ExtDialog.Run(); //— succeed return(INIT_SUCCEEDED); } //+——————————————————————+ //| Expert deinitialization function | //+——————————————————————+ void OnDeinit(const int reason) { //— clear comments Comment(""); //— destroy dialog ExtDialog.Destroy(reason); } //+——————————————————————+ //| Expert chart event function | //+——————————————————————+ void OnChartEvent(const int id, // event ID const long& lparam, // event parameter of the long type const double& dparam, // event parameter of the double type const string& sparam) // event parameter of the string type { ExtDialog.ChartEvent(id,lparam,dparam,sparam); } |
CWndClient
CWndClient は 「Cient area」の(依存コントロールを含む)複雑なコントロールのクラスです。これは、スクロールバー領域作成の基本クラスです。
説明
CWndClient はスクロールバー付きのクライアント領域の作成を実装します。
宣言
class CWndClient : public CWndContainer |
タイトル
#include <ControlsWndClient.mqh> |
継承階層 CObject CWnd CWndContainer CWndClient 直接子孫 CCheckGroup, CListView, CRadioGroup |
クラスメソッド
Create | |
Create | コントロールの作成 |
チャートイベントハンドラ | |
OnEvent | 全てのチャートイベントのハンドラ |
プロパティ | |
ColorBackground | 背景色を設定します。 |
ColorBorder | 境界色を設定します。 |
BorderType | 境界線の種類を設定します。 |
設定 | |
VScrolled | 垂直方向のスクロールバーの使用を示すフラグを取得/設定します。 |
HScrolled | 水平方向のスクロールバーの使用を示すフラグを取得/設定します。 |
依存コントロール | |
CreateBack | スクロールバーの背景を作成します。 |
CreateScrollV | 垂直方向のスクロールバーを作成します。 |
CreateScrollH | 水平方向のスクロールバーを作成します。 |
内部イベントハンドラ | |
OnResize | 「Resize」イベントハンドラ |
依存コントロールのイベントハンドラ | |
OnVScrollShow | VScroll 依存コントロールの「Show」イベントハンドラ(仮想) |
OnVScrollHide | VScroll 依存コントロールの「Hide」イベントハンドラ(仮想) |
OnHScrollShow | HScroll 依存コントロールの「Show」イベントハンドラ(仮想) |
OnHScrollHide | HScroll 依存コントロールの「Hide」イベントハンドラ(仮想) |
OnScrollLineDown | VScroll 依存コントロールの「ScrollLineDown」イベントハンドラ(仮想) |
OnScrollLineUp | VScroll 依存コントロールの「ScrollLineUp」イベントハンドラ(仮想) |
OnScrollLineLeft | HScroll 依存コントロールの「ScrollLineLeft」イベントハンドラ(仮想) |
OnScrollLineRight | HScroll 依存コントロールの「ScrollLineRight」イベントハンドラ(仮想) |
Resize | |
Rebound | CRect クラスの座標を使用してコントロールの新しい座標を設定します。 |
クラスから継承されたメソッド CObject Prev, Prev, Next, Next, Type, Compare |
クラスから継承されたメソッド CWnd Name, ControlsTotal, Control, Rect, Left, Left, Top, Top, Right, Right, Bottom, Bottom, Width, Width, Height, Height, Size, Size, Size, Contains, Contains, Alignment, Align, Id, IsEnabled, IsVisible, Visible, IsActive, Activate, Deactivate, StateFlags, StateFlags, StateFlagsSet, StateFlagsReset, PropFlags, PropFlags, PropFlagsSet, PropFlagsReset, MouseX, MouseX, MouseY, MouseY, MouseFlags, MouseFlags, MouseFocusKill, BringToTop |
クラスから継承されたメソッド CWndContainer Destroy, OnMouseEvent, ControlsTotal, Control, ControlFind, MouseFocusKill, Add, Add, Delete, Delete, Move, Move, Shift, Enable, Disable, Hide, Save, Load |
CListView
CListView は ListView の(依存コントロールを含む)複雑なコントロールのクラスです。
説明
CListView クラスはリストコントロールの機能をカプセル化します。
宣言
class CListView : public CWndClient |
タイトル
#include <ControlsListView.mqh> |
継承階層 CObject CWnd CWndContainer CWndClient CListView |
下記のコ—ドの結果:
クラスメソッド
Create | |
Create | コントロールの作成 |
チャートイベントハンドラ | |
OnEvent | 全てのチャートイベントのハンドラ |
設定 | |
TotalView | コントロールに表示される項目の数の設定 |
追加と削除 | |
AddItem | 項目の追加 |
Data | |
Select | 現在のリスト要素をインデックスで選択します。 |
SelectByText | 現在のリスト要素をインデックスで選択します。 |
SelectByValue | 現在のリスト要素を値で選択します。 |
読み込み専用のデータ | |
値 | Gets the value of current list element |
依存コントロール | |
CreateRow | ListView の列を作成します。 |
内部イベントハンドラ | |
OnResize | 「Resize」イベントハンドラ(仮想) |
依存コントロールのイベントハンドラ | |
OnVScrollShow | VScroll 依存コントロールの「Show」イベントハンドラ(仮想) |
OnVScrollHide | VScroll 依存コントロールの「Hide」イベントハンドラ(仮想) |
OnScrollLineDown | VScroll 依存コントロールの「ScrollLineDown」イベントハンドラ(仮想) |
OnScrollLineUp | VScroll 依存コントロールの「ScrollLineUp」イベントハンドラ(仮想) |
OnItemClick | 「ItemClick」イベントハンドラ(仮想) |
Redraw | |
Redraw | コントロールを再描画します。 |
RowState | 指定された行の状態を設定します。 |
CheckView | 指定された行の「visibility」をチェックします。 |
クラスから継承されたメソッド CObject Prev, Prev, Next, Next, Type, Compare |
クラスから継承されたメソッド CWnd Name, ControlsTotal, Control, Rect, Left, Left, Top, Top, Right, Right, Bottom, Bottom, Width, Width, Height, Height, Size, Size, Size, Contains, Contains, Alignment, Align, Id, IsEnabled, IsVisible, Visible, IsActive, Activate, Deactivate, StateFlags, StateFlags, StateFlagsSet, StateFlagsReset, PropFlags, PropFlags, PropFlagsSet, PropFlagsReset, MouseX, MouseX, MouseY, MouseY, MouseFlags, MouseFlags, MouseFocusKill, BringToTop |
クラスから継承されたメソッド CWndContainer OnMouseEvent, ControlsTotal, Control, ControlFind, MouseFocusKill, Add, Add, Delete, Delete, Move, Move, Shift, Enable, Disable, Hide, Save, Load |
クラスから継承されたメソッド CWndClient ColorBackground, ColorBorder, BorderType, VScrolled, VScrolled, HScrolled, HScrolled, Id |
リストビューを使ったパネルの作成例:
//+——————————————————————+ //| ControlsListView.mq5 | //| Copyright 2017, MetaQuotes Software Corp. | //| https://www.mql5.com | //+——————————————————————+ #property copyright "Copyright 2017, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property description "Control Panels and Dialogs. Demonstration class CListView" #include <ControlsDialog.mqh> #include <ControlsListView.mqh> //+——————————————————————+ //| defines | //+——————————————————————+ //— indents and gaps #define INDENT_LEFT (11) // indent from left (with allowance for border width) #define INDENT_TOP (11) // indent from top (with allowance for border width) #define INDENT_RIGHT (11) // indent from right (with allowance for border width) #define INDENT_BOTTOM (11) // indent from bottom (with allowance for border width) #define CONTROLS_GAP_X (5) // gap by X coordinate #define CONTROLS_GAP_Y (5) // gap by Y coordinate //— for buttons #define BUTTON_WIDTH (100) // size by X coordinate #define BUTTON_HEIGHT (20) // size by Y coordinate //— for the indication area #define EDIT_HEIGHT (20) // size by Y coordinate //— for group controls #define GROUP_WIDTH (150) // size by X coordinate #define LIST_HEIGHT (179) // size by Y coordinate #define RADIO_HEIGHT (56) // size by Y coordinate #define CHECK_HEIGHT (93) // size by Y coordinate //+——————————————————————+ //| Class CControlsDialog | //| Usage: main dialog of the Controls application | //+——————————————————————+ class CControlsDialog : public CAppDialog { private: CListView m_list_view; // CListView object public: CControlsDialog(void); ~CControlsDialog(void); //— create virtual bool Create(const long chart,const string name,const int subwin,const int x1,const int y1,const int x2,const int y2); //— chart event handler virtual bool OnEvent(const int id,const long &lparam,const double &dparam,const string &sparam); protected: //— create dependent controls bool CreateListView(void); //— handlers of the dependent controls events void OnChangeListView(void); }; //+——————————————————————+ //| Event Handling | //+——————————————————————+ EVENT_MAP_BEGIN(CControlsDialog) ON_EVENT(ON_CHANGE,m_list_view,OnChangeListView) EVENT_MAP_END(CAppDialog) //+——————————————————————+ //| Constructor | //+——————————————————————+ CControlsDialog::CControlsDialog(void) { } //+——————————————————————+ //| Destructor | //+——————————————————————+ CControlsDialog::~CControlsDialog(void) { } //+——————————————————————+ //| Create | //+——————————————————————+ bool CControlsDialog::Create(const long chart,const string name,const int subwin,const int x1,const int y1,const int x2,const int y2) { if(!CAppDialog::Create(chart,name,subwin,x1,y1,x2,y2)) return(false); //— create dependent controls if(!CreateListView()) return(false); //— succeed return(true); } //+——————————————————————+ //| Create the "ListView" element | //+——————————————————————+ bool CControlsDialog::CreateListView(void) { //— coordinates int x1=INDENT_LEFT+GROUP_WIDTH+2*CONTROLS_GAP_X; int y1=INDENT_TOP+(EDIT_HEIGHT+CONTROLS_GAP_Y)+ (BUTTON_HEIGHT+CONTROLS_GAP_Y)+ (EDIT_HEIGHT+2*CONTROLS_GAP_Y); int x2=x1+GROUP_WIDTH; int y2=y1+LIST_HEIGHT-CONTROLS_GAP_Y; //— create if(!m_list_view.Create(m_chart_id,m_name+"ListView",m_subwin,x1,y1,x2,y2)) return(false); if(!Add(m_list_view)) return(false); //— fill out with strings for(int i=0;i<16;i++) if(!m_list_view.AddItem("Item "+IntegerToString(i))) return(false); //— succeed return(true); } //+——————————————————————+ //| Event handler | //+——————————————————————+ void CControlsDialog::OnChangeListView(void) { Comment(__FUNCTION__+" ""+m_list_view.Select()+"""); } //+——————————————————————+ //| Global Variables | //+——————————————————————+ CControlsDialog ExtDialog; //+——————————————————————+ //| Expert initialization function | //+——————————————————————+ int OnInit() { //— create application dialog if(!ExtDialog.Create(0,"Controls",0,40,40,380,344)) return(INIT_FAILED); //— run application ExtDialog.Run(); //— succeed return(INIT_SUCCEEDED); } //+——————————————————————+ //| Expert deinitialization function | //+——————————————————————+ void OnDeinit(const int reason) { //— clear comments Comment(""); //— destroy dialog ExtDialog.Destroy(reason); } //+——————————————————————+ //| Expert chart event function | //+——————————————————————+ void OnChartEvent(const int id, // event ID const long& lparam, // event parameter of the long type const double& dparam, // event parameter of the double type const string& sparam) // event parameter of the string type { ExtDialog.ChartEvent(id,lparam,dparam,sparam); } |
CComboBox
CComboBox は ComboBox の(依存コントロールを含む)複雑なコントロールのクラスです。
説明
ComboBox は、選択のために意図されたスタティックコントロールと組み合わせたリストボックスで構成されています。コントロールのリストボックス部分は、ユーザがコントロールの隣にあるドロップダウン矢印を選択した際にドロップダウンすることが出来ます。
宣言
class CComboBox : public CWndContainer |
タイトル
#include <ControlsComboBox.mqh> |
継承階層 CObject CWnd CWndContainer CComboBox |
下記のコ—ドの結果:
クラスメソッド
Create | |
Create | コントロールの作成 |
チャートイベントハンドラ | |
OnEvent | 全てのチャートイベントのハンドラ |
Add | |
AddItem | 項目の追加 |
設定 | |
ListViewItems | コントロールに表示される項目の数の設定 |
Data | |
Select | 現在のリスト要素をインデックスで選択します。 |
SelectByText | 現在のリスト要素をインデックスで選択します。 |
SelectByValue | 現在のリスト要素を値で選択します。 |
読み込み専用のデータ | |
値 | 現在のリスト要素の値を取得します。 |
依存コントロール | |
CreateEdit | 依存コントロール(編集)を作成します。 |
CreateButton | 依存コントロール(ボタン)を作成します。 |
CreateList | 依存コントロール(リストビュー)を作成します。 |
依存コントロールのイベントハンドラ | |
OnClickEdit | 「ClickEdit」イベントハンドラ(仮想) |
OnClickButton | 「ClickButton」イベントハンドラ(仮想) |
OnChangeList | 「ChangeList」イベントハンドラ(仮想) |
Show/Hide | |
ListShow | 項目リストの表示 |
ListHide | 項目リストの非表示 |
クラスから継承されたメソッド CObject Prev, Prev, Next, Next, Type, Compare |
クラスから継承されたメソッド CWnd Name, ControlsTotal, Control, Rect, Left, Left, Top, Top, Right, Right, Bottom, Bottom, Width, Width, Height, Height, Size, Size, Size, Contains, Contains, Alignment, Align, Id, IsEnabled, IsVisible, Visible, IsActive, Activate, Deactivate, StateFlags, StateFlags, StateFlagsSet, StateFlagsReset, PropFlags, PropFlags, PropFlagsSet, PropFlagsReset, MouseX, MouseX, MouseY, MouseY, MouseFlags, MouseFlags, MouseFocusKill, BringToTop |
クラスから継承されたメソッド CWndContainer Destroy, OnMouseEvent, ControlsTotal, Control, ControlFind, MouseFocusKill, Add, Add, Delete, Delete, Move, Move, Shift, Id, Enable, Disable, Hide |
コンボボックスを使ったパネルの作成例:
//+——————————————————————+ //| ControlsComboBox.mq5 | //| Copyright 2015, MetaQuotes Software Corp. | //| https://www.mql5.com | //+——————————————————————+ #property copyright "Copyright 2015, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property description "Control Panels and Dialogs. Demonstration class CComboBox" #include <ControlsDialog.mqh> #include <ControlsComboBox.mqh> //+——————————————————————+ //| defines | //+——————————————————————+ //— indents and gaps #define INDENT_LEFT (11) // indent from left (with allowance for border width) #define INDENT_TOP (11) // indent from top (with allowance for border width) #define INDENT_RIGHT (11) // indent from right (with allowance for border width) #define INDENT_BOTTOM (11) // indent from bottom (with allowance for border width) #define CONTROLS_GAP_X (5) // gap by X coordinate #define CONTROLS_GAP_Y (5) // gap by Y coordinate //— for buttons #define BUTTON_WIDTH (100) // size by X coordinate #define BUTTON_HEIGHT (20) // size by Y coordinate //— for the indication area #define EDIT_HEIGHT (20) // size by Y coordinate //— for group controls #define GROUP_WIDTH (150) // size by X coordinate #define LIST_HEIGHT (179) // size by Y coordinate #define RADIO_HEIGHT (56) // size by Y coordinate #define CHECK_HEIGHT (93) // size by Y coordinate //+——————————————————————+ //| Class CControlsDialog | //| Usage: main dialog of the Controls application | //+——————————————————————+ class CControlsDialog : public CAppDialog { private: CComboBox m_combo_box;; // CComboBox object public: CControlsDialog(void); ~CControlsDialog(void); //— create virtual bool Create(const long chart,const string name,const int subwin,const int x1,const int y1,const int x2,const int y2); //— chart event handler virtual bool OnEvent(const int id,const long &lparam,const double &dparam,const string &sparam); protected: //— create dependent controls bool CreateComboBox(void); //— handlers of the dependent controls events void OnChangeComboBox(void); }; //+——————————————————————+ //| Event Handling | //+——————————————————————+ EVENT_MAP_BEGIN(CControlsDialog) ON_EVENT(ON_CHANGE,m_combo_box,OnChangeComboBox) EVENT_MAP_END(CAppDialog) //+——————————————————————+ //| Constructor | //+——————————————————————+ CControlsDialog::CControlsDialog(void) { } //+——————————————————————+ //| Destructor | //+——————————————————————+ CControlsDialog::~CControlsDialog(void) { } //+——————————————————————+ //| Create | //+——————————————————————+ bool CControlsDialog::Create(const long chart,const string name,const int subwin,const int x1,const int y1,const int x2,const int y2) { if(!CAppDialog::Create(chart,name,subwin,x1,y1,x2,y2)) return(false); //— create dependent controls if(!CreateComboBox()) return(false); //— succeed return(true); } //+——————————————————————+ //| Create the "ComboBox" element | //+——————————————————————+ bool CControlsDialog::CreateComboBox(void) { //— coordinates int x1=INDENT_LEFT; int y1=INDENT_TOP+(EDIT_HEIGHT+CONTROLS_GAP_Y)+ (BUTTON_HEIGHT+CONTROLS_GAP_Y)+ (EDIT_HEIGHT+CONTROLS_GAP_Y); int x2=x1+GROUP_WIDTH; int y2=y1+EDIT_HEIGHT; //— create if(!m_combo_box.Create(m_chart_id,m_name+"ComboBox",m_subwin,x1,y1,x2,y2)) return(false); if(!Add(m_combo_box)) return(false); //— fill out with strings for(int i=0;i<16;i++) if(!m_combo_box.ItemAdd("Item "+IntegerToString(i))) return(false); //— succeed return(true); } //+——————————————————————+ //| Event handler | //+——————————————————————+ void CControlsDialog::OnChangeComboBox(void) { Comment(__FUNCTION__+" ""+m_combo_box.Select()+"""); } //+——————————————————————+ //| Global Variables | //+——————————————————————+ CControlsDialog ExtDialog; //+——————————————————————+ //| Expert initialization function | //+——————————————————————+ int OnInit() { //— create application dialog if(!ExtDialog.Create(0,"Controls",0,40,40,380,344)) return(INIT_FAILED); //— run application ExtDialog.Run(); //— succeed return(INIT_SUCCEEDED); } //+——————————————————————+ //| Expert deinitialization function | //+——————————————————————+ void OnDeinit(const int reason) { //— Comment(""); //— destroy dialog ExtDialog.Destroy(reason); } //+——————————————————————+ //| Expert chart event function | //+——————————————————————+ void OnChartEvent(const int id, // event ID const long& lparam, // event parameter of the long type const double& dparam, // event parameter of the double type const string& sparam) // event parameter of the string type { ExtDialog.ChartEvent(id,lparam,dparam,sparam); } |
CCheckBox
CCheckBox は CheckBox の複雑なコントロールのクラスです。
説明
CCheckBox コントロールは、ユーザが true または false の条件を選択することを可能にするチェックボックスが表示します。
宣言
class CCheckBox : public CWndContainer |
タイトル
#include <ControlsCheckBox.mqh> |
継承階層 CObject CWnd CWndContainer CCheckBox |
下記のコ—ドの結果:
クラスメソッド
Create | |
Create | コントロールの作成 |
チャートイベントハンドラ | |
OnEvent | 全てのチャートイベントのハンドラ |
プロパティ | |
Text | コントロールに関連付けられたラベルを取得/設定します。 |
Color | コントロールに関連付けられたラベルの色を取得/設定します。 |
State | |
Checked | コントロールがチェックされているかどうかを示す値を取得/設定します。 |
Data | |
値 | コントロールに関連付けられた値を取得/設定します。 |
依存コントロール | |
CreateButton | 依存コントロール(ボタン)を作成します。 |
CreateLabel | 依存コントロール(ラベル)を作成します。 |
依存コントロールのイベントハンドラ | |
ClickButton | 「ClickButton」イベントハンドラ(仮想) |
ClickLabel | 「ClickLabe」イベントハンドラ(仮想) |
クラスから継承されたメソッド CObject Prev, Prev, Next, Next, Type, Compare |
クラスから継承されたメソッド CWnd Name, ControlsTotal, Control, Rect, Left, Left, Top, Top, Right, Right, Bottom, Bottom, Width, Width, Height, Height, Size, Size, Size, Contains, Contains, Alignment, Align, Id, IsEnabled, IsVisible, Visible, IsActive, Activate, Deactivate, StateFlags, StateFlags, StateFlagsSet, StateFlagsReset, PropFlags, PropFlags, PropFlagsSet, PropFlagsReset, MouseX, MouseX, MouseY, MouseY, MouseFlags, MouseFlags, MouseFocusKill, BringToTop |
クラスから継承されたメソッド CWndContainer Destroy, OnMouseEvent, ControlsTotal, Control, ControlFind, MouseFocusKill, Add, Add, Delete, Delete, Move, Move, Shift, Id, Enable, Disable, Show, Hide |
Example of creating a panel with Checkbox control:
//+——————————————————————+ //| ControlsCheckBox.mq5 | //| Copyright 2017, MetaQuotes Software Corp. | //| https://www.mql5.com | //+——————————————————————+ #property copyright "Copyright 2017, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property description "Control Panels and Dialogs. Demonstration class CCheckBox" #include <ControlsDialog.mqh> #include <ControlsCheckBox.mqh> //+——————————————————————+ //| defines | //+——————————————————————+ //— indents and gaps #define INDENT_LEFT (11) // indent from left (with allowance for border width) #define INDENT_TOP (11) // indent from top (with allowance for border width) #define INDENT_RIGHT (11) // indent from right (with allowance for border width) #define INDENT_BOTTOM (11) // indent from bottom (with allowance for border width) #define CONTROLS_GAP_X (5) // gap by X coordinate #define CONTROLS_GAP_Y (5) // gap by Y coordinate //— for buttons #define BUTTON_WIDTH (100) // size by X coordinate #define BUTTON_HEIGHT (20) // size by Y coordinate //— for the indication area #define EDIT_HEIGHT (20) // size by Y coordinate //— for group controls #define GROUP_WIDTH (150) // size by X coordinate #define LIST_HEIGHT (179) // size by Y coordinate #define RADIO_HEIGHT (56) // size by Y coordinate #define CHECK_HEIGHT (93) // size by Y coordinate //+——————————————————————+ //| Class CControlsDialog | //| Usage: main dialog of the Controls application | //+——————————————————————+ class CControlsDialog : public CAppDialog { private: CCheckBox m_check_box1; // CCheckBox object CCheckBox m_check_box2; // CCheckBox object public: CControlsDialog(void); ~CControlsDialog(void); //— create virtual bool Create(const long chart,const string name,const int subwin,const int x1,const int y1,const int x2,const int y2); //— chart event handler virtual bool OnEvent(const int id,const long &lparam,const double &dparam,const string &sparam); protected: //— create dependent controls bool CreateCheckBox1(void); bool CreateCheckBox2(void); //— handlers of the dependent controls events void OnChangeCheckBox1(void); void OnChangeCheckBox2(void); }; //+——————————————————————+ //| Event Handling | //+——————————————————————+ EVENT_MAP_BEGIN(CControlsDialog) ON_EVENT(ON_CHANGE,m_check_box1,OnChangeCheckBox1) ON_EVENT(ON_CHANGE,m_check_box2,OnChangeCheckBox2) EVENT_MAP_END(CAppDialog) //+——————————————————————+ //| Constructor | //+——————————————————————+ CControlsDialog::CControlsDialog(void) { } //+——————————————————————+ //| Destructor | //+——————————————————————+ CControlsDialog::~CControlsDialog(void) { } //+——————————————————————+ //| Create | //+——————————————————————+ bool CControlsDialog::Create(const long chart,const string name,const int subwin,const int x1,const int y1,const int x2,const int y2) { if(!CAppDialog::Create(chart,name,subwin,x1,y1,x2,y2)) return(false); //— create dependent controls if(!CreateCheckBox1()) return(false); if(!CreateCheckBox2()) return(false); //— succeed return(true); } //+——————————————————————+ //| Create the "CheckBox" element | //+——————————————————————+ bool CControlsDialog::CreateCheckBox1(void) { //— coordinates int x1=INDENT_LEFT; int y1=INDENT_TOP+(EDIT_HEIGHT+CONTROLS_GAP_Y)+ (BUTTON_HEIGHT+CONTROLS_GAP_Y)+ (EDIT_HEIGHT+CONTROLS_GAP_Y)+ (EDIT_HEIGHT+CONTROLS_GAP_Y)+ (RADIO_HEIGHT+CONTROLS_GAP_Y); int x2=x1+GROUP_WIDTH; int y2=y1+BUTTON_HEIGHT; //— create if(!m_check_box1.Create(m_chart_id,m_name+"CheckBox1",m_subwin,x1,y1,x2,y2)) return(false); if(!m_check_box1.Text("CheckBox1")) return(false); if(!m_check_box1.Color(clrBlue)) return(false); if(!Add(m_check_box1)) return(false); //— succeed return(true); } //+——————————————————————+ //| Create the "CheckBox" element | //+——————————————————————+ bool CControlsDialog::CreateCheckBox2(void) { //— coordinates int x1=INDENT_LEFT+GROUP_WIDTH+CONTROLS_GAP_X; int y1=INDENT_TOP+(EDIT_HEIGHT+CONTROLS_GAP_Y)+ (BUTTON_HEIGHT+CONTROLS_GAP_Y)+ (EDIT_HEIGHT+CONTROLS_GAP_Y)+ (EDIT_HEIGHT+CONTROLS_GAP_Y)+ (RADIO_HEIGHT+CONTROLS_GAP_Y); int x2=x1+GROUP_WIDTH; int y2=y1+BUTTON_HEIGHT; //— create if(!m_check_box2.Create(m_chart_id,m_name+"CheckBox2",m_subwin,x1,y1,x2,y2)) return(false); if(!m_check_box2.Text("CheckBox2")) return(false); if(!m_check_box2.Color(clrBlue)) return(false); if(!Add(m_check_box2)) return(false); m_check_box2.Checked(true); Comment(__FUNCTION__+" : Checked="+IntegerToString(m_check_box2.Checked())); //— succeed return(true); } //+——————————————————————+ //| Event handler | //+——————————————————————+ void CControlsDialog::OnChangeCheckBox1(void) { Comment(__FUNCTION__+" : Checked="+IntegerToString(m_check_box1.Checked())); } //+——————————————————————+ //| Event handler | //+——————————————————————+ void CControlsDialog::OnChangeCheckBox2(void) { Comment(__FUNCTION__+" : Checked="+IntegerToString(m_check_box2.Checked())); } //+——————————————————————+ //| Global Variables | //+——————————————————————+ CControlsDialog ExtDialog; //+——————————————————————+ //| Expert initialization function | //+——————————————————————+ int OnInit() { //— create application dialog if(!ExtDialog.Create(0,"Controls",0,40,40,380,344)) return(INIT_FAILED); //— run application ExtDialog.Run(); //— succeed return(INIT_SUCCEEDED); } //+——————————————————————+ //| Expert deinitialization function | //+——————————————————————+ void OnDeinit(const int reason) { //— Comment(""); //— destroy dialog ExtDialog.Destroy(reason); } //+——————————————————————+ //| Expert chart event function | //+——————————————————————+ void OnChartEvent(const int id, // event ID const long& lparam, // event parameter of the long type const double& dparam, // event parameter of the double type const string& sparam) // event parameter of the string type { ExtDialog.ChartEvent(id,lparam,dparam,sparam); } |
CCheckGroup
CCheckGroup は CheckGroup の(依存コントロールを含む)複雑なコントロールのクラスです。
説明
CCheckGroup はフラグの表示及び編集を可能にするコントロールを作成する可能性を提供します。
宣言
class CCheckGroup : public CWndClient |
タイトル
#include <ControlsCheckGroup.mqh> |
継承階層 CObject CWnd CWndContainer CWndClient CCheckGroup |
下記のコ—ドの結果:
クラスメソッド
Create | |
Create | コントロールの作成 |
チャートイベントハンドラ | |
OnEvent | 全てのチャートイベントのハンドラ |
Add | |
AddItem | 新しい項目の追加 |
読み込み専用のデータ | |
値 | コントロールに関連付けられた値を取得します。 |
依存コントロール | |
CreateButton | 新しい CCheckBox 項目の作成 |
依存コントロールのイベントハンドラ | |
OnVScrollShow | VScroll 依存コントロールの「Show」イベントハンドラ(仮想) |
OnVScrollHide | VScroll 依存コントロールの「Hide」イベントハンドラ(仮想) |
OnScrollLineDown | VScroll 依存コントロールの「ScrollLineUp」イベントハンドラ(仮想) |
OnScrollLineUp | VScroll 依存コントロールの「ScrollLineDown」イベントハンドラ(仮想) |
OnChangeItem | VScroll 依存コントロールの「ChangeItem」イベントハンドラ(仮想) |
Redraw | |
Redraw | グループの再描画 |
RowState | 指定された項目の状態の設定 |
クラスから継承されたメソッド CObject Prev, Prev, Next, Next, Type, Compare |
クラスから継承されたメソッド CWnd Name, ControlsTotal, Control, Rect, Left, Left, Top, Top, Right, Right, Bottom, Bottom, Width, Width, Height, Height, Size, Size, Size, Contains, Contains, Alignment, Align, Id, IsEnabled, IsVisible, Visible, IsActive, Activate, Deactivate, StateFlags, StateFlags, StateFlagsSet, StateFlagsReset, PropFlags, PropFlags, PropFlagsSet, PropFlagsReset, MouseX, MouseX, MouseY, MouseY, MouseFlags, MouseFlags, MouseFocusKill, BringToTop |
クラスから継承されたメソッド CWndContainer OnMouseEvent, ControlsTotal, Control, ControlFind, MouseFocusKill, Add, Add, Delete, Delete, Move, Move, Shift, Enable, Disable, Hide |
クラスから継承されたメソッド CWndClient ColorBackground, ColorBorder, BorderType, VScrolled, VScrolled, HScrolled, HScrolled, Id |
チェックボックスグループを使ったパネルの作成例:
//+——————————————————————+ //| ControlsCheckGroup.mq5 | //| Copyright 2017, MetaQuotes Software Corp. | //| https://www.mql5.com | //+——————————————————————+ #property copyright "Copyright 2017, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property description "Control Panels and Dialogs. Demonstration class CCheckGroup" #include <ControlsDialog.mqh> #include <ControlsCheckGroup.mqh> //+——————————————————————+ //| defines | //+——————————————————————+ //— indents and gaps #define INDENT_LEFT (11) // indent from left (with allowance for border width) #define INDENT_TOP (11) // indent from top (with allowance for border width) #define INDENT_RIGHT (11) // indent from right (with allowance for border width) #define INDENT_BOTTOM (11) // indent from bottom (with allowance for border width) #define CONTROLS_GAP_X (5) // gap by X coordinate #define CONTROLS_GAP_Y (5) // gap by Y coordinate //— for buttons #define BUTTON_WIDTH (100) // size by X coordinate #define BUTTON_HEIGHT (20) // size by Y coordinate //— for the indication area #define EDIT_HEIGHT (20) // size by Y coordinate //— for group controls #define GROUP_WIDTH (150) // size by X coordinate #define LIST_HEIGHT (179) // size by Y coordinate #define RADIO_HEIGHT (56) // size by Y coordinate #define CHECK_HEIGHT (93) // size by Y coordinate //+——————————————————————+ //| Class CControlsDialog | //| Usage: main dialog of the Controls application | //+——————————————————————+ class CControlsDialog : public CAppDialog { private: CCheckGroup m_check_group; // CCheckGroup object public: CControlsDialog(void); ~CControlsDialog(void); //— create virtual bool Create(const long chart,const string name,const int subwin,const int x1,const int y1,const int x2,const int y2); //— chart event handler virtual bool OnEvent(const int id,const long &lparam,const double &dparam,const string &sparam); protected: //— create dependent controls bool CreateCheckGroup(void); //— handlers of the dependent controls events void OnChangeCheckGroup(void); }; //+——————————————————————+ //| Event Handling | //+——————————————————————+ EVENT_MAP_BEGIN(CControlsDialog) ON_EVENT(ON_CHANGE,m_check_group,OnChangeCheckGroup) EVENT_MAP_END(CAppDialog) //+——————————————————————+ //| Constructor | //+——————————————————————+ CControlsDialog::CControlsDialog(void) { } //+——————————————————————+ //| Destructor | //+——————————————————————+ CControlsDialog::~CControlsDialog(void) { } //+——————————————————————+ //| Create | //+——————————————————————+ bool CControlsDialog::Create(const long chart,const string name,const int subwin,const int x1,const int y1,const int x2,const int y2) { if(!CAppDialog::Create(chart,name,subwin,x1,y1,x2,y2)) return(false); //— create dependent controls if(!CreateCheckGroup()) return(false); //— succeed return(true); } //+——————————————————————+ //| Create the "CheckGroup" element | //+——————————————————————+ bool CControlsDialog::CreateCheckGroup(void) { //— coordinates int x1=INDENT_LEFT; int y1=INDENT_TOP+(EDIT_HEIGHT+CONTROLS_GAP_Y)+ (BUTTON_HEIGHT+CONTROLS_GAP_Y)+ (EDIT_HEIGHT+CONTROLS_GAP_Y)+ (EDIT_HEIGHT+CONTROLS_GAP_Y)+ (RADIO_HEIGHT+CONTROLS_GAP_Y); int x2=x1+GROUP_WIDTH; int y2=y1+CHECK_HEIGHT; //— create if(!m_check_group.Create(m_chart_id,m_name+"CheckGroup",m_subwin,x1,y1,x2,y2)) return(false); if(!Add(m_check_group)) return(false); //— fill out with strings for(int i=0;i<5;i++) if(!m_check_group.AddItem("Item "+IntegerToString(i),1<<i)) return(false); m_check_group.Check(0,1<<0); m_check_group.Check(2,1<<2); Comment(__FUNCTION__+" : Value="+IntegerToString(m_check_group.Value())); //— succeed return(true); } //+——————————————————————+ //| Event handler | //+——————————————————————+ void CControlsDialog::OnChangeCheckGroup(void) { Comment(__FUNCTION__+" : Value="+IntegerToString(m_check_group.Value())); } //+——————————————————————+ //| Global Variables | //+——————————————————————+ CControlsDialog ExtDialog; //+——————————————————————+ //| Expert initialization function | //+——————————————————————+ int OnInit() { //— create application dialog if(!ExtDialog.Create(ChartID(),"Controls",0,40,40,380,344)) return(INIT_FAILED); //— run application ExtDialog.Run(); //— succeed return(INIT_SUCCEEDED); } //+——————————————————————+ //| Expert deinitialization function | //+——————————————————————+ void OnDeinit(const int reason) { //— Comment(""); //— destroy dialog ExtDialog.Destroy(reason); } //+——————————————————————+ //| Expert chart event function | //+——————————————————————+ void OnChartEvent(const int id, // event ID const long& lparam, // event parameter of the long type const double& dparam, // event parameter of the double type const string& sparam) // event parameter of the string type { ExtDialog.ChartEvent(id,lparam,dparam,sparam); } |
CRadioButton
CRadioButton は RadioButton の複雑なコントロールのクラスです。
説明
CRadioButton 自体は使用されず CRadioGroup 項目の作成に使用されています。
宣言
class CRadioButton : public CWndContainer |
タイトル
#include <ControlsRadioButton.mqh> |
継承階層 CObject CWnd CWndContainer CRadioButton |
クラスメソッド
Create | |
Create | コントロールの作成 |
チャートイベントハンドラ | |
OnEvent | 全てのチャートイベントのハンドラ |
プロパティ | |
Text | コントロールに関連付けられたラベルを取得/設定します。 |
Color | コントロールに関連付けられたラベルの色を取得/設定します。 |
State | |
State | 状態を取得/設定します。 |
依存コントロール | |
CreateButton | ボタンを作成します。 |
CreateLabel | ラベルを作成します。 |
依存コントロールのイベントハンドラ | |
OnClickButton | 「ClickButton」イベントハンドラ(仮想) |
OnClickLabel | 「ClickLabe」イベントハンドラ(仮想) |
クラスから継承されたメソッド CObject Prev, Prev, Next, Next, Type, Compare |
クラスから継承されたメソッド CWnd Name, ControlsTotal, Control, Rect, Left, Left, Top, Top, Right, Right, Bottom, Bottom, Width, Width, Height, Height, Size, Size, Size, Contains, Contains, Alignment, Align, Id, IsEnabled, IsVisible, Visible, IsActive, Activate, Deactivate, StateFlags, StateFlags, StateFlagsSet, StateFlagsReset, PropFlags, PropFlags, PropFlagsSet, PropFlagsReset, MouseX, MouseX, MouseY, MouseY, MouseFlags, MouseFlags, MouseFocusKill, BringToTop |
クラスから継承されたメソッド CWndContainer Destroy, OnMouseEvent, ControlsTotal, Control, ControlFind, MouseFocusKill, Add, Add, Delete, Delete, Move, Move, Shift, Id, Enable, Disable, Show, Hide, Save, Load |
CRadioGroup
CRadioGroup は RadioGroup の(依存コントロールを含む)複雑なコントロールのクラスです。
説明
CRadioGroup は他の CRadioButton コントロールと組み合わされて、選択グループからの 1 つのオプションの選択を可能にします。
宣言
class CRadioGroup : public CWndClient |
タイトル
#include <ControlsRadioGroup.mqh> |
継承階層 CObject CWnd CWndContainer CWndClient CRadioGroup |
下記のコ—ドの結果:
クラスメソッド
Create | |
Create | コントロールの作成 |
チャートイベントハンドラ | |
OnEvent | 全てのチャートイベントのハンドラ |
Add | |
AddItem | 新しい項目の追加 |
読み込み専用のデータ | |
値 | コントロールに関連付けられた値を取得します。 |
依存コントロール | |
CreateButton | 新しい CRadioButton 項目を作成します。 |
依存コントロールのイベントハンドラ | |
OnVScrollShow | VScroll 依存コントロールの「Show」イベントハンドラ(仮想) |
OnVScrollHide | VScroll 依存コントロールの「Hide」イベントハンドラ(仮想) |
OnScrollLineDown | VScroll 依存コントロールの「ScrollLineDown」イベントハンドラ(仮想) |
OnScrollLineUp | VScroll 依存コントロールの「ScrollLineUp」イベントハンドラ(仮想) |
OnChangeItem | 「ChangeItem」イベントハンドラ(仮想) |
Redraw | |
Redraw | グループ項目の再描画 |
RowState | 指定された項目の状態の設定 |
Select | 現在の項目を選択します。 |
クラスから継承されたメソッド CObject Prev, Prev, Next, Next, Type, Compare |
クラスから継承されたメソッド CWnd Name, ControlsTotal, Control, Rect, Left, Left, Top, Top, Right, Right, Bottom, Bottom, Width, Width, Height, Height, Size, Size, Size, Contains, Contains, Alignment, Align, Id, IsEnabled, IsVisible, Visible, IsActive, Activate, Deactivate, StateFlags, StateFlags, StateFlagsSet, StateFlagsReset, PropFlags, PropFlags, PropFlagsSet, PropFlagsReset, MouseX, MouseX, MouseY, MouseY, MouseFlags, MouseFlags, MouseFocusKill, BringToTop |
クラスから継承されたメソッド CWndContainer OnMouseEvent, ControlsTotal, Control, ControlFind, MouseFocusKill, Add, Add, Delete, Delete, Move, Move, Shift, Enable, Disable, Hide |
クラスから継承されたメソッド CWndClient ColorBackground, ColorBorder, BorderType, VScrolled, VScrolled, HScrolled, HScrolled, Id |
ラジオボタングループを使ったパネルの作成例:
//+——————————————————————+ //| ControlsRadioGroup.mq5 | //| Copyright 2017, MetaQuotes Software Corp. | //| https://www.mql5.com | //+——————————————————————+ #property copyright "Copyright 2017, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property description "Control Panels and Dialogs. Demonstration class CRadioGroup" #include <ControlsDialog.mqh> #include <ControlsRadioGroup.mqh> //+——————————————————————+ //| defines | //+——————————————————————+ //— indents and gaps #define INDENT_LEFT (11) // indent from left (with allowance for border width) #define INDENT_TOP (11) // indent from top (with allowance for border width) #define INDENT_RIGHT (11) // indent from right (with allowance for border width) #define INDENT_BOTTOM (11) // indent from bottom (with allowance for border width) #define CONTROLS_GAP_X (5) // gap by X coordinate #define CONTROLS_GAP_Y (5) // gap by Y coordinate //— for buttons #define BUTTON_WIDTH (100) // size by X coordinate #define BUTTON_HEIGHT (20) // size by Y coordinate //— for the indication area #define EDIT_HEIGHT (20) // size by Y coordinate //— for group controls #define GROUP_WIDTH (150) // size by X coordinate #define LIST_HEIGHT (179) // size by Y coordinate #define RADIO_HEIGHT (56) // size by Y coordinate #define CHECK_HEIGHT (93) // size by Y coordinate //+——————————————————————+ //| Class CControlsDialog | //| Usage: main dialog of the Controls application | //+——————————————————————+ class CControlsDialog : public CAppDialog { private: CRadioGroup m_radio_group; // CRadioGroup object public: CControlsDialog(void); ~CControlsDialog(void); //— create virtual bool Create(const long chart,const string name,const int subwin,const int x1,const int y1,const int x2,const int y2); //— chart event handler virtual bool OnEvent(const int id,const long &lparam,const double &dparam,const string &sparam); protected: //— create dependent controls bool CreateRadioGroup(void); //— handlers of the dependent controls events void OnChangeRadioGroup(void); }; //+——————————————————————+ //| Event Handling | //+——————————————————————+ EVENT_MAP_BEGIN(CControlsDialog) ON_EVENT(ON_CHANGE,m_radio_group,OnChangeRadioGroup) EVENT_MAP_END(CAppDialog) //+——————————————————————+ //| Constructor | //+——————————————————————+ CControlsDialog::CControlsDialog(void) { } //+——————————————————————+ //| Destructor | //+——————————————————————+ CControlsDialog::~CControlsDialog(void) { } //+——————————————————————+ //| Create | //+——————————————————————+ bool CControlsDialog::Create(const long chart,const string name,const int subwin,const int x1,const int y1,const int x2,const int y2) { if(!CAppDialog::Create(chart,name,subwin,x1,y1,x2,y2)) return(false); //— create dependent controls if(!CreateRadioGroup()) return(false); //— succeed return(true); } //+——————————————————————+ //| Create the "RadioGroup" element | //+——————————————————————+ bool CControlsDialog::CreateRadioGroup(void) { //— coordinates int x1=INDENT_LEFT; int y1=INDENT_TOP+(EDIT_HEIGHT+CONTROLS_GAP_Y)+ (BUTTON_HEIGHT+CONTROLS_GAP_Y)+ (EDIT_HEIGHT+CONTROLS_GAP_Y)+ (EDIT_HEIGHT+CONTROLS_GAP_Y); int x2=x1+GROUP_WIDTH; int y2=y1+RADIO_HEIGHT; //— create if(!m_radio_group.Create(m_chart_id,m_name+"RadioGroup",m_subwin,x1,y1,x2,y2)) return(false); if(!Add(m_radio_group)) return(false); //— fill out with strings for(int i=0;i<3;i++) if(!m_radio_group.AddItem("Item "+IntegerToString(i),1<<i)) return(false); m_radio_group.Value(1<<2); Comment(__FUNCTION__+" : Value="+IntegerToString(m_radio_group.Value())); //— succeed return(true); } //+——————————————————————+ //| Event handler | //+——————————————————————+ void CControlsDialog::OnChangeRadioGroup(void) { Comment(__FUNCTION__+" : Value="+IntegerToString(m_radio_group.Value())); } //+——————————————————————+ //| Global Variables | //+——————————————————————+ CControlsDialog ExtDialog; //+——————————————————————+ //| Expert initialization function | //+——————————————————————+ int OnInit() { //— create application dialog if(!ExtDialog.Create(0,"Controls",0,40,40,380,344)) return(INIT_FAILED); //— run application ExtDialog.Run(); //— succeed return(INIT_SUCCEEDED); } //+——————————————————————+ //| Expert deinitialization function | //+——————————————————————+ void OnDeinit(const int reason) { //— clear comments Comment(""); //— destroy dialog ExtDialog.Destroy(reason); } //+——————————————————————+ //| Expert chart event function | //+——————————————————————+ void OnChartEvent(const int id, // event ID const long& lparam, // event parameter of the long type const double& dparam, // event parameter of the double type const string& sparam) // event parameter of the string type { ExtDialog.ChartEvent(id,lparam,dparam,sparam); } |
CSpinEdit
CSpinEdit は SpinEdit の(依存コントロールを含む)複雑なコントロールのクラスです。
説明
CSpinEdit クラスは、整数型の値の編集を可能にするコントロールの作成に意図されています。データは、上ボタンを押すと自動に増加、下ボタンを押すと自動的減少します。
宣言
class CSpinEdit : public CWndContainer |
タイトル
#include <ControlsSpinEdit.mqh> |
継承階層 CObject CWnd CWndContainer CSpinEdit |
下記のコ—ドの結果:
クラスメソッド
Create | |
Create | コントロールの作成 |
チャートイベントハンドラ | |
OnEvent | 全てのチャートイベントのハンドラ |
プロパティ | |
MinValue | 最小の許容値を取得/設定します。 |
MaxValue | 最大の許容値を取得/設定します。 |
State | |
値 | 現在の値を取得/設定します。 |
依存コントロール | |
CreateEdit | 依存コントロール(編集)を作成します。 |
CreateInc | 依存コントロール(インクレメントボタン)を作成します。 |
CreateDec | 依存コントロール(デクレメントボタン)を作成します。 |
依存コントロールのイベントハンドラ | |
OnClickInc | 「ClickInc」イベントハンドラ(仮想) |
OnClickDec | 「ClickDec」イベントハンドラ(仮想) |
内部イベントハンドラ | |
OnChangeValue | 「ChangeValue」イベントハンドラ(仮想) |
クラスから継承されたメソッド CObject Prev, Prev, Next, Next, Type, Compare |
クラスから継承されたメソッド CWnd Name, ControlsTotal, Control, Rect, Left, Left, Top, Top, Right, Right, Bottom, Bottom, Width, Width, Height, Height, Size, Size, Size, Contains, Contains, Alignment, Align, Id, IsEnabled, IsVisible, Visible, IsActive, Activate, Deactivate, StateFlags, StateFlags, StateFlagsSet, StateFlagsReset, PropFlags, PropFlags, PropFlagsSet, PropFlagsReset, MouseX, MouseX, MouseY, MouseY, MouseFlags, MouseFlags, MouseFocusKill, BringToTop |
クラスから継承されたメソッド CWndContainer Destroy, OnMouseEvent, ControlsTotal, Control, ControlFind, MouseFocusKill, Add, Add, Delete, Delete, Move, Move, Shift, Id, Enable, Disable, Show, Hide |
SpinEditコントロールを使ったパネルの作成例:
//+——————————————————————+ //| ControlsSpinEdit.mq5 | //| Copyright 2017, MetaQuotes Software Corp. | //| https://www.mql5.com | //+——————————————————————+ #property copyright "Copyright 2017, MetaQuotes Software Corp." #property link "https://www.mql5.com" #property version "1.00" #property description "Control Panels and Dialogs. Demonstration class CSpinEdit" #include <ControlsDialog.mqh> #include <ControlsSpinEdit.mqh> //+——————————————————————+ //| defines | //+——————————————————————+ //— indents and gaps #define INDENT_LEFT (11) // indent from left (with allowance for border width) #define INDENT_TOP (11) // indent from top (with allowance for border width) #define INDENT_RIGHT (11) // indent from right (with allowance for border width) #define INDENT_BOTTOM (11) // indent from bottom (with allowance for border width) #define CONTROLS_GAP_X (5) // gap by X coordinate #define CONTROLS_GAP_Y (5) // gap by Y coordinate //— for buttons #define BUTTON_WIDTH (100) // size by X coordinate #define BUTTON_HEIGHT (20) // size by Y coordinate //— for the indication area #define EDIT_HEIGHT (20) // size by Y coordinate //— for group controls #define GROUP_WIDTH (150) // size by X coordinate #define LIST_HEIGHT (179) // size by Y coordinate #define RADIO_HEIGHT (56) // size by Y coordinate #define CHECK_HEIGHT (93) // size by Y coordinate //+——————————————————————+ //| Class CControlsDialog | //| Usage: main dialog of the Controls application | //+——————————————————————+ class CControlsDialog : public CAppDialog { private: CSpinEdit m_spin_edit; // CSpinEdit object public: CControlsDialog(void); ~CControlsDialog(void); //— create virtual bool Create(const long chart,const string name,const int subwin,const int x1,const int y1,const int x2,const int y2); //— chart event handler virtual bool OnEvent(const int id,const long &lparam,const double &dparam,const string &sparam); protected: //— create dependent controls bool CreateSpinEdit(void); //— handlers of the dependent controls events void OnChangeSpinEdit(void); }; //+——————————————————————+ //| Event Handling | //+——————————————————————+ EVENT_MAP_BEGIN(CControlsDialog) ON_EVENT(ON_CHANGE,m_spin_edit,OnChangeSpinEdit) EVENT_MAP_END(CAppDialog) //+——————————————————————+ //| Constructor | //+——————————————————————+ CControlsDialog::CControlsDialog(void) { } //+——————————————————————+ //| Destructor | //+——————————————————————+ CControlsDialog::~CControlsDialog(void) { } //+——————————————————————+ //| Create | //+——————————————————————+ bool CControlsDialog::Create(const long chart,const string name,const int subwin,const int x1,const int y1,const int x2,const int y2) { if(!CAppDialog::Create(chart,name,subwin,x1,y1,x2,y2)) return(false); //— create dependent controls if(!CreateSpinEdit()) return(false); //— succeed return(true); } //+——————————————————————+ //| Create the "SpinEdit" element | //+——————————————————————+ bool CControlsDialog::CreateSpinEdit(void) { //— coordinates int x1=INDENT_LEFT; int y1=INDENT_TOP+(EDIT_HEIGHT+CONTROLS_GAP_Y)+(BUTTON_HEIGHT+CONTROLS_GAP_Y); int x2=x1+GROUP_WIDTH; int y2=y1+EDIT_HEIGHT; //— create if(!m_spin_edit.Create(m_chart_id,m_name+"SpinEdit",m_subwin,x1,y1,x2,y2)) return(false); if(!Add(m_spin_edit)) return(false); m_spin_edit.MinValue(10); m_spin_edit.MaxValue(100); m_spin_edit.Value(50); Comment(__FUNCTION__+" : Value="+IntegerToString(m_spin_edit.Value())); //— succeed return(true); } //+——————————————————————+ //| Event handler | //+——————————————————————+ void CControlsDialog::OnChangeSpinEdit(void) { Comment(__FUNCTION__+" : Value="+IntegerToString(m_spin_edit.Value())); } //+——————————————————————+ //| Global Variables | //+——————————————————————+ CControlsDialog ExtDialog; //+——————————————————————+ //| Expert initialization function | //+——————————————————————+ int OnInit() { //— create application dialog if(!ExtDialog.Create(0,"Controls",0,40,40,380,344)) return(INIT_FAILED); //— run application ExtDialog.Run(); //— succeed return(INIT_SUCCEEDED); } //+——————————————————————+ //| Expert deinitialization function | //+——————————————————————+ void OnDeinit(const int reason) { //— clear comments Comment(""); //— destroy dialog ExtDialog.Destroy(reason); } //+——————————————————————+ //| Expert chart event function | //+——————————————————————+ void OnChartEvent(const int id, // event ID const long& lparam, // event parameter of the long type const double& dparam, // event parameter of the double type const string& sparam) // event parameter of the string type { ExtDialog.ChartEvent(id,lparam,dparam,sparam); } |
CDialog
CDialog は Dialog の複雑なコントロールのクラスです。
説明
CDialog クラスは、グループ内のいろいろなの関数の制御を組み合わせることを意図しています。
宣言
class CDialog : public CWndContainer |
タイトル
#include <ControlsDialog.mqh> |
継承階層 CObject CWnd CWndContainer CDialog 直接子孫 CAppDialog |
クラスメソッド
Create | |
Create | コントロールの作成 |
チャートイベントハンドラ | |
OnEvent | 全てのチャートイベントのハンドラ |
プロパティ | |
Caption | 「Caption」プロパティの値を取得/設定します。 |
Add | |
Add | クライアント領域にコントロールを追加します。 |
依存コントロール | |
CreateWhiteBorder | 依存コントロール(白い境界)を作成します。 |
CreateBackground | 依存コントロール(背景)を作成します。 |
CreateCaption | 依存コントロール(キャプション)を作成します。 |
CreateButtonClose | 依存コントロール(「close」ボタン)を作成します。 |
CreateClientArea | 依存コントロール(クライアント領域)を作成します。 |
依存コントロールのイベントハンドラ | |
OnClickCaption | 「ClickCaption」イベントハンドラ |
OnClickButtonClose | 「ClickButtonClose」イベントハンドラ |
クライアント領域へのアクセス | |
ClientAreaVisible | クライアント領域が表示されているかを示す値を設定します。 |
ClientAreaLeft | コントロールクライアント領域の左上隅の X 座標を取得します。 |
ClientAreaTop | コントロールクライアント領域の左上隅の Y 座標を取得します。 |
ClientAreaRight | コントロールクライアント領域の右下隅の X 座標を取得します。 |
ClientAreaBottom | コントロールクライアント領域の右下隅の Y 座標を取得します。 |
ClientAreaWidth | クライアント領域の幅を取得します。 |
ClientAreaHeight | クライアント領域の高さを取得します。 |
ドラッグイベントハンドラ | |
OnDialogDragStart | 「DialogDragStart」イベントハンドラ(仮想) |
OnDialogDragProcess | 「DialogDragProcess」イベントハンドラ(仮想) |
OnDialogDragEnd | 「DialogDragEnd」イベントハンドラ(仮想) |
クラスから継承されたメソッド CObject Prev, Prev, Next, Next, Type, Compare |
クラスから継承されたメソッド CWnd Name, ControlsTotal, Control, Rect, Left, Left, Top, Top, Right, Right, Bottom, Bottom, Width, Width, Height, Height, Size, Size, Size, Contains, Contains, Alignment, Align, Id, IsEnabled, IsVisible, Visible, IsActive, Activate, Deactivate, StateFlags, StateFlags, StateFlagsSet, StateFlagsReset, PropFlags, PropFlags, PropFlagsSet, PropFlagsReset, MouseX, MouseX, MouseY, MouseY, MouseFlags, MouseFlags, MouseFocusKill, BringToTop |
クラスから継承されたメソッド CWndContainer Destroy, OnMouseEvent, ControlsTotal, Control, ControlFind, MouseFocusKill, Add, Add, Delete, Delete, Move, Move, Shift, Id, Enable, Disable, Show, Hide |
CAppDialog
CAppDialog は、アプリケーションダイアログの(依存コントロールを含む)複雑なコントロールのクラスです。
説明
CAppDialog クラスは、MQL5 プログラム内のグループ内のいろいろなの関数の制御を組み合わせることを意図しています。
宣言
class CAppDialog : public CDialog |
タイトル
#include <ControlsDialog.mqh> |
継承階層 CObject CWnd CWndContainer CDialog CAppDialog |
クラスメソッド
作成と破壊 | |
Create | コントロールの作成 |
Destroy | コントロールの破壊 |
イベント処理 | |
OnEvent | 全てのチャートイベントのハンドラ |
Run | |
Run | コントロールの実行 |
チャートイベント処理 | |
ChartEvent | 全てのチャートイベントのハンドラ |
設定 | |
Minimized | コントロールが最小化されているかを示す値を設定します。 |
Save/Load | |
IniFileSave | コントロールの状態をファイルに保存します。 |
IniFileLoad | コントロールの状態をファイルから読み込みます。 |
IniFileName | コントロールの状態を読み込み/保存するためのファイル名を設定します。 |
IniFileExt | コントロールの状態を読み込み/保存するためのファイル拡張子を/設定します。 |
初期化 | |
CreateCommon | 共通の初期化メソッド |
CreateExpert | エキスパートアドバイザーの初期化メソッド |
CreateIndicator | 指標の初期化メソッド |
依存コントロール | |
CreateButtonMinMax | 依存コントロールを作成します。(ボタンを最小化/最大化) |
依存コントロールのイベントハンドラ | |
OnClickButtonClose | 「ClickButtonClose」イベントハンドラ(仮想) |
OnClickButtonMinMax | 「ClickButtonMinMax」イベントハンドラ(仮想) |
外部イベント | |
OnAnotherApplicationClose | 外部イベントハンドラ(仮想) |
メソッド | |
Rebound | CRect クラスの座標を使用してコントロールの新しい座標を設定します。 |
Minimize | 最小化した状態でコントロールを表示します。 |
Maximize | 最大化(元に返す)状態のコントロールを表示します。 |
CreateInstanceId | コントロールオブジェクト名の一意のIDを作成します。 |
ProgramName | MQL5 プログラムの名称を取得します。 |
SubwinOff | コントロールサブウィンドウの Y オフセットを取得します。 |
クラスから継承されたメソッド CObject Prev, Prev, Next, Next, Type, Compare |
クラスから継承されたメソッド CWnd Name, ControlsTotal, Control, Rect, Left, Left, Top, Top, Right, Right, Bottom, Bottom, Width, Width, Height, Height, Size, Size, Size, Contains, Contains, Alignment, Align, Id, IsEnabled, IsVisible, Visible, IsActive, Activate, Deactivate, StateFlags, StateFlags, StateFlagsSet, StateFlagsReset, PropFlags, PropFlags, PropFlagsSet, PropFlagsReset, MouseX, MouseX, MouseY, MouseY, MouseFlags, MouseFlags, MouseFocusKill, BringToTop |
クラスから継承されたメソッド CWndContainer OnMouseEvent, ControlsTotal, Control, ControlFind, MouseFocusKill, Add, Add, Delete, Delete, Move, Move, Shift, Id, Enable, Disable, Show, Hide |
クラスから継承されたメソッド CDialog Caption, Caption, Add, Add |
Originally posted 2019-07-30 10:19:31.