MT5程序代碼講解之——背景圖片大放送
作者:MT4 來源:cxh99.com 發布時間:2012年05月30日
- MT5程序代碼講解之——背景圖片大放送
MT5雖然還沒有正式投放市場,但是通過測試人員編寫的程序代碼我們已經能夠看到一些令人激動的新功能了。下面這個EA能夠輪番播放存放于硬盤上的圖片文件,做為K線圖的背景畫面。還是挺有趣的。
//+-----------------------------------------------------+
//| ytg_BITMAP_exp.mq5 |Copyright Yuriy Tokman |
yuriytokman@gmail.com |
//+-----------------------------------------------------+
#property copyright "Yuriy Tokman"
#property link "yuriytokman@gmail.com"
#property version "1.00"
input string name1 = "Tetris\\1.bmp"; // 帶路徑的圖片文件
input string name2 = "Tetris\\2.bmp"; //帶路徑的圖片文件input int seconds = 2; // 秒
string _NAME = "ytg_BITMAP";
int tick = 0;
//+----------------------------------------------------+
//| 初始化函數 |
//+----------------------------------------------------+
int OnInit()
{ChartRedraw();//刷新圖表
EventSetTimer(seconds);//設置時間觸發器,這正是MT5的新功能,每隔seconds秒,這里設為2秒,觸發一次 OnTimer()函數。這樣不用象 MT4那樣只靠tick數據觸發了。
return(0);}
//+-----------------------------------------------------+
//|反初始化函數 |
//+----------------------------------------------------+
void OnDeinit()
{
EventKillTimer();//如果在初始化函數中設置了EventSetTimer(),必須用這條語句在退出時取消時間觸發。
ChartRedraw();//刷新圖表
//---
ObjectDelete(0,_NAME);//刪除做為背景的物件
}
//+------------------------------------------------------------------+
//| 實時函數 |
//+------------------------------------------------------------------+
void OnTimer()
{
//---
tick ++;//計次。
if(tick == 2) Bitmap(_NAME,name1); //每觸發2次調用第一幅圖片做為背景。
if(tick == 4){tick = 0;Bitmap(_NAME,name2);} //每觸發4次調用第二幅圖片做為背景。并把計次變量清0。
ChartRedraw();
}
//+--------------------------------------------------+
void Bitmap ( string name, //對象名稱
string file, //文件路徑
int x = 1, // 以像素為單位的橫坐標
int y = 1) // 以像素為單位的縱坐標
{
if(ObjectFind(0,name)!=-1)ObjectDelete(0,name);//如存在同名物件予以刪除。
ObjectCreate(0,name,OBJ_BITMAP_LABEL,0,0,0,0,0);//建立名為name的位圖文件。
ObjectSetInteger(0,name,OBJPROP_XDISTANCE,x);//橫坐標
ObjectSetInteger(0,name,OBJPROP_YDISTANCE,y);//縱坐標
ObjectSetInteger(0,name,OBJPROP_BACK,true);//設為顯示背景
ObjectSetString(0,name,OBJPROP_BMPFILE,file); //設置背景文件。
}
這個EA運行后會每4秒更換一次背景圖片。
代碼講解:bcsunwww
MetaQuotes 官方網站俄文原文地址:http://codebase.mql4.com/ru/6026