ChartSetInteger

지정한 차트의 해당 속성에 대한 값을 설정합니다. 차트 속성은 datetime, int, color, bool 또는 char여야 합니다. 이 명령은 차트 메시지 대기열에 추가되며 모든 이전 명령을 처리한 후 실행됩니다.

bool  ChartSetInteger(
   long                           chart_id,     // 차트 ID
   ENUM_CHART_PROPERTY_INTEGER    prop_id,      // 속성 ID
   long                           value         // 값
   );

지정된 하위 창의 해당 속성에 대한 값을 설정.

bool  ChartSetInteger(
   long                           chart_id,     // 차트 ID
   ENUM_CHART_PROPERTY_INTEGER    prop_id,      // 속성 ID
   int                            sub_window,   // 하위 창 번호
   long                           value         // 값
   );

매개변수

chart_id

[in]  차트 ID. 0은 현재 차트를 의미합니다.

prop_id

[in]  차트 속성 ID. ENUM_CHART_PROPERTY_INTEGER 값 중 하나일 수 있습니다(읽기 전용 속성 제외).

sub_window

[in] 차트 하위창의 번호. 첫 번째 경우 기본 값은 0(주 차트장) 입니다. 대부분의 속성은 하위창 번호가 일치하지 않습니다.

[in]  속성 값.

값 반환

명령이 차트 대기열에 추가된 경우 true를 반환, 그렇지 않은 경우 false를 반환. 오류에 대한 정보를 가져오기 위해, GetLastError() 함수 호출.

주의

함수는 비동기식이며, 이는 함수가 지정된 차트의 대기열에 성공적으로 추가된 명령 실행을 기다리지 않음을 의미합니다. 대신, 컨트롤을 즉시 반환 차트 대기열에서 적절한 명령을 처리한 후에만 속성이 변경됩니다. 차트 대기열에서 명령을 즉시 시행하려면 ChartRedraw 함수를 호출.

한 번에 여러 차트 속성을 즉시 변경하려면 해당 함수(ChartSetString, ChartSetDouble, ChartSetString)를 하나의 코드 블록에서 실행해야 하며그런 다음 ChartRedraw를 한번 호출.

명령 실행 결과를 확인하려면 지정된 차트 속성 (ChartGetInteger, ChartGetDouble, ChartSetString)을 요청하는 함수를 사용할 수 있습니다. 하지만 이러한 기능은 동기화되어 실행 결과를 기다립니다.

예를 들어:

//+------------------------------------------------------------------+
//| 엑스퍼트 초기화 함수                                   |
//+------------------------------------------------------------------+
void OnInit()
  {
//--- 차트 창에서 마우스 이동 이벤트 활성화
   ChartSetInteger(0,CHART_EVENT_MOUSE_MOVE,1);
//--- 차트 속성의 강제 업데이트로 이벤트 처리 준비 보장
   ChartRedraw();
  }
//+------------------------------------------------------------------+
//| MouseState                                                       |
//+------------------------------------------------------------------+
string MouseState(uint state)
  {
   string res;
   res+="\nML: "   +(((state& 1)== 1)?"DN":"UP");   // 마우스 좌측
   res+="\nMR: "   +(((state& 2)== 2)?"DN":"UP");   // 마우스 우측 
   res+="\nMM: "   +(((state&16)==16)?"DN":"UP");   // 마우스 중간
   res+="\nMX: "   +(((state&32)==32)?"DN":"UP");   // 마우스 첫 번째 X 키
   res+="\nMY: "   +(((state&64)==64)?"DN":"UP");   // 마우스 두 번째 X 키
   res+="\nSHIFT: "+(((state& 4)== 4)?"DN":"UP");   // 시프트 키
   res+="\nCTRL: " +(((state& 8)== 8)?"DN":"UP");   // 컨트롤 키
   return(res);
  }
//+------------------------------------------------------------------+
//| ChartEvent 기능                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,const long &lparam,const double &dparam,const string &sparam)
  {
   if(id==CHARTEVENT_MOUSE_MOVE)
      Comment("POINT: ",(int)lparam,",",(int)dparam,"\n",MouseState((uint)sparam));
  }