2018年12月1日土曜日

ボタン操作 MQL4 備忘メモ

MQL4でボタン操作をします。
OnChartEvent()でキーイベントを受け取ります。
キーが押されると以下の値が入ります。

id == CHARTEVENT_KEYDOWN   
lparam キーコード
dparam 長押しの連続数
sparam キーの状態

今回はid と lparam を使用して顔文字を動かします。

キーコードはComment(lparam);で確認したところ
37-40が矢印キーです。

↑↓←→のキーを押すと顔文字が動くサンプルです。

キー操作ができればテトリスが作れそうですね!


string Name="TEXT";
int x=0,y=30;
int OnInit()
{
ObjectCreate(Name,OBJ_LABEL,0,0,0);
ObjectSet(Name,OBJPROP_XDISTANCE,0);
ObjectSet(Name,OBJPROP_YDISTANCE,30);
ObjectSetText(Name,"(^^)v",10,NULL,clrWhite);
return INIT_SUCCEEDED;
}
void OnChartEvent(const int id,
const long &lparam,
const double &dparam,
const string &sparam)
{
if(id==CHARTEVENT_KEYDOWN)
{
if(lparam==37){x--;if(x< 0)x= 0;}//left
if(lparam==39){x++;if(x>30)x=30;}//right
ObjectSet(Name,OBJPROP_XDISTANCE,x);
if(lparam==38){y--;if(y< 30)y= 30;}//up
if(lparam==40){y++;if(y>60)y=60;}//down
ObjectSet(Name,OBJPROP_YDISTANCE,y);
}
}

0 件のコメント:

コメントを投稿