당사 팬 페이지에 가입하십시오
- 조회수:
- 5892
- 평가:
- 게시됨:
- 2016.04.14 10:47
- 업데이트됨:
- 2016.11.22 07:32
-
이 코드를 기반으로 한 로봇이나 지표가 필요하신가요? 프리랜스로 주문하세요 프리랜스로 이동
The "MQL5 for "Dummies": How to Design and Construct Object Classes" articles describes how you can create a user-friendly interface for your programs. Implementation of interactive windows is based on the use of the MasterWindows class library.
Fig. 1. Example of the MasterWindows library use
The MasterWindows library consists of three base classes:
- the base CCell class:
//+------------------------------------------------------------------+ //| The base CELL class CCell | //+------------------------------------------------------------------+ class CCell { private: protected: bool on_event; // Event handling flag ENUM_OBJECT type; // Cell type public: WinCell Property; // Cell properties string name; // Cell name //+---------------------------------------------------------------+ // Class constructor void CCell(); virtual // Method: draw an object void Draw(string m_name, int m_xdelta, int m_ydelta, int m_bsize); virtual // The OnChartEvent event handling method void OnEvent(const int id, const long &lparam, const double &dparam, const string &sparam); };
- the base CRow class, consists of cells of the CCell class:
//+------------------------------------------------------------------+ //| The base ROW class CRow | //+------------------------------------------------------------------+ class CRow { protected: bool on_event; // Event handling flag public: string name; // Row name WinCell Property; // Row properties //+---------------------------------------------------------------+ // Class constructor void CRow(); virtual // Method: draw a row void Draw(string m_name, int m_xdelta, int m_ydelta, int m_bsize); virtual // The OnChartEvent event handling method void OnEvent(const int id, const long &lparam, const double &dparam, const string &sparam); };
- the base CWin class, consists of rows of the CRow class:
//+------------------------------------------------------------------+ //| The base Window class CWin | //+------------------------------------------------------------------+ class CWin { private: void SetXY(int m_corner);// The method for calculating coordinates protected: bool on_event; // Event handling flag public: string name; // Window name int w_corner; // Anchor corner int w_xdelta; // Vertical indent int w_ydelta; // Horizontal indent int w_xpos; // The X coordinate of the anchor point int w_ypos; // The Y coordinate of the anchor point int w_bsize; // The width of the window int w_hsize; // The height of the window int w_h_corner; // The anchor corner of the HIDE mode WinCell Property; // Window properties //--- CRowType1 STR1; // Declaring the class row CRowType2 STR2; // Declaring the class row CRowType3 STR3; // Declaring the class row CRowType4 STR4; // Declaring the class row CRowType5 STR5; // Declaring the class row CRowType6 STR6; // Declaring the class row //+---------------------------------------------------------------+ // Class constructor void CWin(); // Data obtaining method void SetWin(string m_name, int m_xdelta, int m_ydelta, int m_bsize, int m_corner); virtual // Method: draw a window void Draw(int &MMint[][3], string &MMstr[][3], int count); virtual // The OnEventTick event processing method void OnEventTick(); virtual // The OnChartEvent event handling method void OnEvent(const int id, const long &lparam, const double &dparam, const string &sparam); };
and 1o derived classes.
The attachment contains templates and code samples where the MasterWindows library is used. All codes have been generated using the visual window constructor MasterWindows for MQL5. Test programs are models, i.e. have no functionality (except for two functions: close and hide the window).
You can use any number and combination of rows in a window. The figure shows the basic versions of rows and the window header:
Fig. 2. Basic options and possibilities of the library
For example, for the "Testing Performance of Moving Averages Calculation in MQL5" article, we have created the following interface using the proposed library.
Fig. 3. An example of using the MasterWindows library
Recommendations:
- For a better display of created interface windows, use graphical schemes with a black background.
MetaQuotes Ltd에서 러시아어로 번역함.
원본 코드: https://www.mql5.com/ru/code/15059