文章 "MQL5 细则手册:指标子窗口控件 - 按钮"

 

新文章 MQL5 细则手册:指标子窗口控件 - 按钮已发布:

本文中,我们将探讨开发具备按钮控件的用户界面的示例。为向用户传递互动性理念,当光标悬停于按钮时,按钮颜色会发生改变。光标位于按钮之上时,按钮颜色将稍微变暗,点击时,按钮颜色则会变得更暗。此外,我们将为每一按钮添加工具提示,从而创建直观界面。

本文也将讨论一些事件:鼠标移动事件、鼠标左键状态、左击对象和修改图表属性事件。将创建按钮面板,其将占据指标子窗口的全部空间。为做到清晰明了,按钮将分三行排列,每行四个按钮。

MQL5 Cookbook: Indicator Subwindow Controls - Buttons

作者:Anatoli Kazharski

 

对于初学者来说,这篇文章不错。但是,在更复杂的界面中,这种方法就不再适用了。首先映入眼帘的是什么?

for(int i=0; i<BUTTON_COLUMNS; i++)
     {
      for(int j=0; j<BUTTON_ROWS; j++)
        {
            ...
      ...
...
即在算法中加入了僵化的表格结构,而且几乎所有函数都采用了这种结构。现在让我们设想一下,子窗口中包含几个与表格没有任何关系的图形元素。对于这些元素,我们将不得不描述它们自己的定位模型,这并不好。定位模型应该是一个通用模型,也就是说,在这种情况下,"表格 "布局应该是该模型的一个特例。
 
C-4:

对于初学者来说,这篇文章不错。但是,在更复杂的界面中,这种方法就不再适用了。首先映入眼帘的是什么?

即在算法中加入了僵化的表格结构,而且几乎所有函数都采用了这种结构。现在让我们设想一下,子窗口中包含几个与表格没有任何关系的图形元素。对于这些元素,我们将不得不描述它们自己的定位模型,这并不好。定位模型应该是一个通用的模型,也就是说,在这种情况下,"表格 "布局应该是这个模型的一个特例。

是的,你说得对。我下次会想出一些更新颖的东西。)

在本例中,为了摆脱特例,只需使用一个一维数组和一个循环即可。

 

我不明白为什么要使用OBJ_EDIT

从库中 "恢复 "标准按钮(这样它们在鼠标下也会发光)会更有用。

也就是说,这似乎是一篇有用的文章,但我不明白为什么要选择这种方式。

ps: 我很羡慕作者的成果丰硕;)

 
komposter:

...

我已经习惯使用OBJ_EDIT,因为它在测试仪的可视化过程中显示。

在这种情况下,您可以使用任何对象作为示例。毕竟这是一个创造性的过程。)

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов - Документация по MQL5
 
komposter:

我不明白为什么要使用OBJ_EDIT

从库中 "恢复 "标准按钮(这样它们在鼠标下也会发光)会更有用。

也就是说,这似乎是一篇有用的文章,但我不明白为什么要选择这种方式。

附注:我很羡慕作者的成果丰硕;)

实际上,标准按钮是非常不稳定的控制元素,因为首先它不支持框架颜色(虽然这是很奇怪的原因),其次,根据框架类型 BORDER_FLAT、BORDER_RAISED,它的视觉位置明显偏离其位置,我并不是说除此之外,它还会根据按下的状态改变其阴影,并且在没有 ChartRedraw 的情况下改变其显示非常缓慢。实际上,与其他元素相比,该按钮除了具有类似 Windows 3.11 的切碎界面外,并没有任何优势。是的,有一个特殊的字段 OBJ_SELECTED,表示按钮是否按下,但实际上创建自己的对象 OBJ_EDIT(包含按下标志)是没有问题的。
 
按钮根本就不是按钮)。
 
komposter:

如果能将库中的标准按钮 "动画化"(这样它们在鼠标下也会发光),那就更有用了。

我在想,有哪个专业开发人员会在自己的产品中使用标准 图形元素库呢
Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5
 
zfs:
而按钮根本不是真正的按钮)。
按钮是任何可以按动的东西。))
 
C-4:
我想知道,是否有专业开发人员会在其产品中使用标准 图形元素
我认为市场上有一些产品的界面与标准库中使用的元素很相似。
 

我想知道,当你准备材料时,你读过 篇文章吗?