最近,我阅读了 Anatoli 的所有文章,我必须说他是一位伟大的程序员。此外,他还与像我这样的 MT5 编程语言新手分享他的知识,我认为这是一个慷慨的举动。我希望 Anatoli 今后能发表更多文章。
谢谢,我还在转这个例子....我没注意到,我太笨了 ))
您好
你好,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); } }
再次感谢您的出色工作。
新文章 MQL5 细则手册:指标子窗口控件 - 滚动条已发布:
让我们继续开发各种控件,这一次我们将注意力转向滚动条。正如前文 “MQL5 细则手册:指标子窗口控件 - 按钮”一样,我们将在指标子窗口中工作。花一些时间阅读上面提到的文章,文中对在OnChartEvent() 函数中处理事件提供了详细的说明,而这一点在本文中只是略有提及。为便于说明,这一次我们将为一个大列表创建一个垂直滚动条,该列表包含使用 MQL5 资源可以获得的所有金融工具属性。
在有关 MQL5 编程的前文中,我们使用图形对象 OBJ_LABEL(文本标签)来创建列表。在本文中,我们将使用画布来显示文本。这种方法的便利性在于,我们不需要使用大量的 OBJ_LABEL 对象,我们只需要使用一个 - OBJ_BITMAP_LABEL(位图标签)。您可以在画布上绘制任何界面元素,但这一次我们将限定于文本。
滚动条将非常简单。它通常具有箭头按钮,但在我们的案例中则不会包含这些。滚动条将仅包含背景和滚动框。当光标停在滚动框上时,滚动框将改变颜色。单击滚动框时,它同样会改变颜色,以提示用户滚动框现已选定并可以拖动。在创建滚动对象时,我们将使用 OBJ_RECTANGLE_LABEL(矩形标签)类型的图形对象。
作者:Anatoli Kazharski