MT5, 为什么两个不同颜色的矩形重叠部分会发生颜色变化,是否能让最上层的绿色覆盖蓝色那块重叠部分?

 

如图

a



我的代码大致如下 :

#include <ChartObjects\ChartObjectsShapes.mqh>
CChartObjectRectangle rectangle_1, rectangle_2;

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void CreateRectangle()
  {
   rectangle_1.Create(0, "rectangle_1", 0, iTime(_Symbol, PERIOD_CURRENT, 150), 1.17160, iTime(_Symbol, PERIOD_CURRENT, 30), 1.15840);
   rectangle_1.Color(clrBlue);
   rectangle_1.Fill(true);
   rectangle_1.Background(true);

   rectangle_2.Create(0, "rectangle_2", 0, iTime(_Symbol, PERIOD_CURRENT, 130), 1.16450, iTime(_Symbol, PERIOD_CURRENT, 20), 1.15140);
   rectangle_2.Color(clrGreen);
   rectangle_2.Fill(true);
   rectangle_2.Background(true);

   ChartRedraw();
  }
 

改变创建顺序即可

或者使用更加高级的 Cavans 画布来实现,因为 Cavans 支持 ARGB

 
Ding Kang Chen #:

改变创建顺序即可

或者使用更加高级的 Cavans 画布来实现,因为 Cavans 支持 ARGB

改变创建顺序也一样, 遇到重叠的地方,一样会变成综合色

 

本文对此有详细解释,希望对您有所帮助。

https://www.mql5.com/zh/articles/1341

研究CCanvas类如何绘制透明的图形对象
研究CCanvas类如何绘制透明的图形对象
  • 2015.09.02
  • www.mql5.com
你是不是想要更加好看的移动平均线?你想要在终端中绘制更加漂亮的而不是简单的实心矩形吗?终端中能够绘制出更有吸引力的图形。这可以通过CCanvas类来实现,该类用于创建自定义图形对象。用这个类你能够实现透明化,混合色以及通过重叠和混合颜色产生透明的效果。
 
Alain Verleyen #:

本文对此有详细解释,希望对您有所帮助。

https://www.mql5.com/zh/articles/1341

真是太好了, 看完这篇文章,我已经学会了制作透明图形,谢谢你版主!~