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 件のコメント:
コメントを投稿