ValuesFunctionFormat(获得方法)

获得定义坐标轴显示值格式的函数指针

DoubleToStringFunction  ValuesFunctionFormat()

返回值

定义坐标轴显示值格式的函数指针。

ValuesFunctionFormat(设置方法)

设置定义坐标轴显示值格式的函数指针。

void  ValuesFunctionFormat(

   DoubleToStringFunction  func      // 将数值转为字符串的函数

   )

参数

func

[in]  将数值转为字符串的自定义函数。

示例:

通过以下代码改变显示X坐标轴值的格式:

//+------------------------------------------------------------------+

//|                                              DateAxisGraphic.mq5 |

//|                        Copyright 2016, MetaQuotes Software Corp. |

//|                                             https://www.mql5.com |

//+------------------------------------------------------------------+

#include <Graphics\Graphic.mqh>

//--- array for store values

double arrX[];

double arrY[];

//+------------------------------------------------------------------+

//| 创建X轴值的自定义函数                                               |

//+------------------------------------------------------------------+

string TimeFormat(double x,void *cbdata)

  {

   return(TimeToString((datetime)arrX[ArraySize(arrX)-(int)x-1]));

  }

//+------------------------------------------------------------------+

void OnStart()

  {

   MqlRates rates[];

   CopyRates(Symbol(),Period(),0,100,rates);

   ArraySetAsSeries(rates,true);

   int size=ArraySize(rates);

   ArrayResize(arrX,size);

   ArrayResize(arrY,size);

   for(int i=0; i<size;++i)

     {

      arrX[i]=(double)rates[i].time;

      arrY[i]=rates[i].close;

     }

//--- create graphic

   CGraphic graphic;

   if(!graphic.Create(0,"DateAxisGraphic",0,30,30,780,380))

     {

      graphic.Attach(0,"DateAxisGraphic");

     }

//--- create curve

   CCurve *curve=graphic.CurveAdd(arrY,CURVE_LINES);

//--- 获得X轴 

   CAxis *xAxis=graphic.XAxis();

//--- 设置 X 轴属性 

   xAxis.AutoScale(false);

   xAxis.Type(AXIS_TYPE_CUSTOM);

   xAxis.ValuesFunctionFormat(TimeFormat);

   xAxis.DefaultStep(20.0);

//--- plot 

   graphic.CurvePlotAll();

   graphic.Update();

  }