ID | 詳細 |
CHARTEVENT_KEYDOWN | キー押下 |
CHARTEVENT_MOUSE_MOVE | マウス移動またはマウスクリック(※1) |
CHARTEVENT_OBJECT_CREATE | グラフィカルオブジェクトを作成(※2) |
CHARTEVENT_OBJECT_CHANGE | グラフィカルオブジェクトのプロパティを、プロパティダイアログで変更した。 |
CHARTEVENT_OBJECT_DELETE | グラフィカルオブジェクトを削除した(※3) |
CHARTEVENT_CLICK | チャートをクリック |
CHARTEVENT_OBJECT_CLICK | グラフィカルオブジェクトをクリック |
CHARTEVENT_OBJECT_DRAG | グラフィカルオブジェクトを移動 |
CHARTEVENT_OBJECT_ENDEDIT | グラフィカルオブジェクトLabelEditのテキスト編集完了 |
CHARTEVENT_CHART_CHANGE | プロパティダイアログでチャートサイズやチャートプロパティを変更 |
CHARTEVENT_CUSTOM | カスタムイベントの最初のイベント |
CHARTEVENT_CUSTOM_LAST | カスタムイベントの最後のイベント(範囲内の最後) |
イベントの種類 | 引数:id イベントID |
引数:lparam long型イベント |
引数:dparam double型イベント |
引数:sparam string型イベント |
キー押下 | CHARTEVENT_KEYDOWN | 押下されたキーの コード |
繰り返し押された回数 | キー状態の ビットマスク文字列 |
マウス操作 ※1 |
CHARTEVENT_MOUSE_MOVE | X座標 | Y座標 | マウスボタン状態の ビットマスク文字列 |
オブジェクト作成 ※2 |
CHARTEVENT_OBJECT_CREATE | - | - | 作成された オブジェクト名 |
オブジェクト プロパティ変更 |
CHARTEVENT_OBJECT_CHANGE | - | - | 変更された オブジェクト名 |
オブジェクト削除 ※3 |
CHARTEVENT_OBJECT_DELETE | - | - | 削除された オブジェクト名 |
チャート上での マウスクリック |
CHARTEVENT_CLICK | X座標 | Y座標 | - |
オブジェクトクリック | CHARTEVENT_OBJECT_CLICK | X座標 | Y座標 | クリックされた オブジェクト名 |
オブジェクト移動 (マウス操作) |
CHARTEVENT_OBJECT_DRAG | - | - | 移動された オブジェクト名 |
LabelEdit編集完了 | CHARTEVENT_OBJECT_ENDEDIT | - | - | LabelEdit オブジェクト名 |
チャート変更 | CHARTEVENT_CHART_CHANGE | - | - | - |
カスタムイベント | CHARTEVENT_CUSTOM+N (N範囲:0~65535) |
EventChartCustom() で設定した値 |
EventChartCustom() で設定した値 |
EventChartCustom() で設定した値 |
#define OBJNAME_TESTLINE "水平ラインオブジェクト" #define KEY_LEFT 37 // 左キーのキーコード #define KEY_NUM_5 101 // テンキー5のキーコード //+------------------------------------------------------------------+ //| 初期化 | //+------------------------------------------------------------------+ void OnInit() { // 水平ラインのオブジェクトを作成 ObjectCreate( OBJNAME_TESTLINE, OBJ_HLINE, 0 , Time[0] , Close[0]); ObjectSet( OBJNAME_TESTLINE, OBJPROP_COLOR, clrYellow); ObjectSet( OBJNAME_TESTLINE, OBJPROP_STYLE, STYLE_SOLID); ObjectSet( OBJNAME_TESTLINE, OBJPROP_WIDTH, 1); } //+------------------------------------------------------------------+ //| イベント関数 | //+------------------------------------------------------------------+ void OnChartEvent( const int id, // イベントID const long& lparam, // long型イベント const double& dparam, // double型イベント const string& sparam) // string型イベント { if ( id == CHARTEVENT_OBJECT_CLICK) { // オブジェクトがクリックされた if ( sparam == OBJNAME_TESTLINE ) { // "水平ラインオブジェクト"がクリックされた Print( OBJNAME_TESTLINE + "をクリック"); } } if( id == CHARTEVENT_KEYDOWN) { // キーボードのキーが押された switch(int(lparam)) { case KEY_LEFT: Print("左キーが押された"); break; case KEY_NUM_5: Print("テンキーの5が押された"); break; default: Print("キーコード" + (string)lparam +"が押された"); } ChartRedraw(); } }
ビット | 詳細 |
1 | マウスの左ボタンの状態 |
2 | マウスの右ボタンの状態 |
3 | SHIFTボタンの状態 |
4 | CTRLボタンの状態 |
5 | マウス中ボタンの状態 |
6 | マウスの第4ボタンの状態 (割り当て変更していなければ、通常はサイドボタンの"戻る"ボタン) |
7 | マウスの第5ボタンの状態 (割り当て変更していなければ、通常はサイドボタンの"進む"ボタン) |
//+------------------------------------------------------------------+ //| 初期化 | //+------------------------------------------------------------------+ void OnInit() { //--- チャートプロパティ設定:CHART_EVENT_MOUSE_MOVE を有効 ChartSetInteger(0,CHART_EVENT_MOUSE_MOVE,true); } //+------------------------------------------------------------------+ //| イベント関数 | //+------------------------------------------------------------------+ void OnChartEvent( const int id, // イベントID const long& lparam, // long型イベント const double& dparam, // double型イベント const string& sparam) // string型イベント { if( id == CHARTEVENT_MOUSE_MOVE ) { // マウス操作イベント発生 Comment("マウス座標: ", (int)lparam,",",(int)dparam,"\n" ,MouseState((uint)sparam) ); } } //+------------------------------------------------------------------+ //| マウスステータス取得 | //+------------------------------------------------------------------+ string MouseState(uint in_sparam) { string res; res+="\n左ボタン : " + ( ((in_sparam & 0x01) == 0x01)?"ON":"OFF" ); res+="\n右ボタン : " + ( ((in_sparam & 0x02) == 0x02)?"ON":"OFF" ); res+="\nSHIFTキー : " + ( ((in_sparam & 0x04) == 0x04)?"ON":"OFF" ); res+="\nCTRLキー : " + (( (in_sparam & 0x08) == 0x08)?"ON":"OFF" ); res+="\n中ボタン : " + ( ((in_sparam & 0x10) == 0x10)?"ON":"OFF" ); res+="\n戻るボタン: " + ( ((in_sparam & 0x20) == 0x20)?"ON":"OFF" ); res+="\n進むボタン: " + ( ((in_sparam & 0x40) == 0x40)?"ON":"OFF" ); return(res); }