请给予更多的自由来管理图形窗口 - 页 5

 
joo:
...现在,你可以在一个窗口中用位图画出任何你想要的东西......虽然有点麻烦,但你可以做任何你想做的事情。
问题不在于你能不能画画--你需要的是一个你能控制的图形窗口:移动、调整大小。
 

作为一种变通方法(这个选项在我看来很难看),应用obj_chart,但你不能对它应用模板并添加指标。

如果有可能在obj_chart 中加入指标,我想这是可以接受的一半措施。

 
barabashkakvn:

作为一种变通方法(这个选项在我看来很难看),应用obj_chart,但你不能对它应用模板并添加指标。

如果有可能在obj_chart 中加入指标,我想这是可以接受的一半措施。

使用MQL5向obj_chart 添加指标是可能的,但也很不方便。
 
tol64:
使用MQL5工具向obj_chart 添加指标是可能的,但也很不方便。
是的,你可以,使用OBJPROP_CHART_ID。 我错了 - 我的意思是在一个单独的窗口中向obj_chart 添加图表。
 
barabashkakvn:

作为一种变通方法(这个选项在我看来很难看),应用obj_chart,但你不能对它应用模板并添加指标。

如果能在obj_chart 中加入指标,那么,我想,这将是一个可以接受的半措施。

barabashkakvn:
是的,你可以,使用OBJPROP_CHART_ID。 我错了--我是指在分离器窗口中向obj_chart 添加图表。

我已经弄明白了:模板可以应用,指标可以添加,obj_chart 对象的分离器窗口可以设置。因此,在MQL5的这个阶段,图表对象实际上可以替代通常的图表窗口。

为什么是实际的?

如果图表分离器窗口不仅可以水平放置,而且可以垂直放置就好了!然后,一个垂直的分离器窗口可以成为普通图表窗口的完全替代。而且垂直分离器窗口可以被控制:它可以被调整大小。因此,你可以通过MQL5来实现对窗口的控制,而无需WinAPI。

 
barabashkakvn:

通过obj_chart,我想明白了:你可以应用一个模板,并为obj_chart 对象添加一个指标和一个分离器窗口。因此,在MQL5的这个阶段,图表对象实际上可以替代通常的图表窗口。

为什么是实际的?

如果图表分离器窗口不仅可以水平放置,而且可以垂直放置就好了!然后,垂直分离器窗口可以成为标准图表窗口的完全替代者。而且垂直分离器窗口可以被控制:它可以被调整大小。因此,你可以通过MQL5来实现对窗口的控制,而无需WinAPI。

在一个图表对象窗口中,你可以放置其他图表类型的对象。鉴于现有的图表事件(CHARTEVENT_MOUSE_MOVE),我们可以实现对象管理。这不是初级的,但却是相当可行的。
 
antt:
其他图表类型的对象也可以放在图表对象窗口中。鉴于现有的图表事件(CHARTEVENT_MOUSE_MOVE),可以实现对象管理。这不是初级的,但却是相当可行的。
图表对象中的ChartNavigate()已经工作了?不知何故,我曾向服务台 发出申请,提出这个要求,但还没有得到答复。
 
tol64:
图表对象中的ChartNavigate()已经工作了?我曾经向服务台发出申请,提出这个要求,但至今没有收到答复。

工作了,而且正在工作。一个简单的例子。

void OnStart()
  {
   ObjectCreate(0,"chart",OBJ_CHART,0,0,0);
   long id=ObjectGetInteger(0,"chart",OBJPROP_CHART_ID);
   ChartSetInteger(id,CHART_AUTOSCROLL,0);
   ChartNavigate(id,CHART_END,0);
   Sleep(1000);
   ChartNavigate(id,CHART_BEGIN,0);
   Sleep(1000);
   ChartNavigate(id,CHART_END,0);
  }
 
antt:

工作了,而且正在工作。一个简单的例子。

谢谢你。事实证明,我的错误在于我没有关闭图形对象中的自动滚动功能。)

很好。然后,图形对象中的水平滚动 可以自行实现。

 
tol64:

谢谢你。事实证明,我的错误在于我没有关闭对象图形中的自动滚动。)

很好。然后,图形对象中的水平滚动可以自行实现。

如何使 "十字准线 "在图表对象中发挥作用--我的意思是,当 "十字准线在图表对象上 "被按住时,OHLC数据会显示在状态栏中?