首页 / 交易学院 / 自定义图形控件(二):把控件做成 IncGUI 库
自定义图形控件(二):把控件做成 IncGUI 库
📚

自定义图形控件(二):把控件做成 IncGUI 库

MQL5 编程 难度 · 进阶 2013 12 分钟阅读
GUI库控件IncGUI面向对象MQL5

从单控件到控件库

第一篇提出创建图形控件的原则,用于解决程序与用户交互的主要问题。本文把所有控件作为独立类加入 IncGUI.mqh(新文件名 IncGUI_v2.mqh),形成可复用库。

外壳类的修正

CGraphicObjectShell 增加了坐标与尺寸的同步设置方法 SetXYDistance()、SetXYSize();并修正了若干方法名里 Distanse 的拼写错误(原拼写为 Distanse)。

// IncGUI_v2.mqh 控件清单(示意)
#include <IncGUI_v2.mqh>
class CInputBox    { void SetValueString(); void SetReadOnly(bool); bool ReadOnly(); };
class CSpinInputBox{ /* 带上下箭头的数字输入 */ };
class CCheckBox    { bool Checked(); void SetChecked(bool); };
class CRadioGroup  { int  Selected(); void SetSelected(int); };
class CVSсrollBar  { int  Pos(); void SetPos(int); };

具体控件清单

本库包含:CInputBox 输入框、CSpinInputBox 微调按钮输入框、CCheckBox 复选框、CRadioGroup 单选按钮组、CVSсrollBar 垂直滚动条等。CInputBox 修正了 SetValueString 的拼写,并新增 SetReadOnly/ReadOnly 控制键盘输入。

CColorSchemes 配色方案

CColorSchemes 的 Show() 配色样本次序已调整:方案垂直排列、颜色水平排列,并新增若干配色。统一的配色类让面板风格一致、易换肤。

⚠ 修正拼写别漏调用方
把 Distanse 改成 Distance、SetValueStrind 改成 SetValueString 后,要同步改所有调用处,否则编译报错或运行时行为错乱。

小结

IncGUI_v2.mqh 把零散控件沉淀为库:外壳同步方法 + 标准控件类 + 配色方案。它是 MQL5 交易面板工程化的基础设施,后续任何 EA/指标界面都能直接复用。

常见问题

新增控件类(输入/微调/复选/单选/滚动条),外壳类加 SetXYDistance/SetXYSize 同步方法,并修正 Distanse/SetValueStrind 等拼写。
SetReadOnly 启用/禁用键盘输入,ReadOnly 查询当前是否只读,适合展示型字段防误改。
CColorSchemes 统一配色让面板风格一致、易换肤,是工程化 GUI 的细节基础。