文章 "MQL5 细则手册:指标子窗口控件 - 滚动条"

 

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

让我们继续开发各种控件,这一次我们将注意力转向滚动条。正如前文 “MQL5 细则手册:指标子窗口控件 - 按钮”一样,我们将在指标子窗口中工作。花一些时间阅读上面提到的文章,文中对在OnChartEvent() 函数中处理事件提供了详细的说明,而这一点在本文中只是略有提及。为便于说明,这一次我们将为一个大列表创建一个垂直滚动条,该列表包含使用 MQL5 资源可以获得的所有金融工具属性。

在有关 MQL5 编程的前文中,我们使用图形对象 OBJ_LABEL(文本标签)来创建列表。在本文中,我们将使用画布来显示文本。这种方法的便利性在于,我们不需要使用大量的 OBJ_LABEL 对象,我们只需要使用一个 - OBJ_BITMAP_LABEL(位图标签)。您可以在画布上绘制任何界面元素,但这一次我们将限定于文本。

滚动条将非常简单。它通常具有箭头按钮,但在我们的案例中则不会包含这些。滚动条将仅包含背景和滚动框。当光标停在滚动框上时,滚动框将改变颜色。单击滚动框时,它同样会改变颜色,以提示用户滚动框现已选定并可以拖动。在创建滚动对象时,我们将使用 OBJ_RECTANGLE_LABEL(矩形标签)类型的图形对象。

MQL5 Cookbook: Indicator Subwindow Controls - Scrollbar

作者:Anatoli Kazharski

 
最近,我阅读了 Anatoli 的所有文章,我必须说他是一位伟大的程序员。此外,他还与像我这样的 MT5 编程语言新手分享他的知识,我认为这是一个慷慨的举动。我希望 Anatoli 今后能发表更多文章。
 

阿纳托利,感谢您的工作和劳动!

我有一个问题,有没有使用标准 Scrolls.mqh库中 CScroll 类的例子?

 
thejobber:

阿纳托利,感谢您的工作和劳动!

有没有使用标准库 Scrolls.mqh 中的 CScroll 类的例子?

谢谢。

我不使用标准库来开发控件界面。

 
thejobber:

阿纳托利,感谢你的工作和劳动!

有一个问题,有没有使用标准库 Scrolls.mqh 中的 CScroll 类的例子?

标准交付中有一个示例


 
谢谢,我还在转这个例子....我没注意到,我太笨了 ))
 
我得重新设计一下可视化逻辑...我正在创建标签,但之前不知道它们的数量,我想在表单中添加一个滚动条,现在就更简单了,只有一个CListView 对象。)
 
能否更改CListView单个项目的颜色?
 

您好

MetaQuotes:

新文章MQL5 Cookbook:指标子窗口控件 - 滚动条 已发布:

作者: Anatoli KazharskiAnatoli Kazharski

你好,Anatoli Kazharski。

虽然这个话题已经很老了,但我还是想感谢你所做的伟大而有益的工作。

我需要滚动条,但我只能在 ListViews 中找到它,但在这里我可以调出滚动条函数并使用它们。

我只注意到,这部分在逻辑上可能总是有效的,但可能不是你想写的:

//+------------------------------------------------------------------+
//| 更改光标悬停在滚动框上时滚动框的颜色
//+------------------------------------------------------------------+
void ChangeScrollbarThumbColorOnHover(int x,int y)
  {
//--- 如果光标位于滚动条区域内,则颜色要深一些
   if(x>scrollbar_thumb_x1 && x<scrollbar_thumb_x2 && y>scrollbar_thumb_y1 && y<scrollbar_thumb_x2)

      SetScrollbarThumbColor(scrollbar_thumb_color_on_hover);
//--- 如果光标位于滚动框边界之外
   else
     {
      //--- 如果松开鼠标键,则设置标准滚动框颜色
      if(!mouse_button_state)
         SetScrollbarThumbColor(scrollbar_thumb_color);
     }
  }

再次感谢您的出色工作。