차트 이벤트 유형
사전 정의된 함수 OnChartEvent()를 사용하여 처리할 수 있는 이벤트 유형은 13가지 입니다. 커스텀 이벤트의 경우 65535 식별자가 CHARTEVENT_CUSTOM 에서 CHARTEVENT_CUSTOM_LAST 사이의 범위에서 제공됩니다. 커스텀 이벤트를 생성하려면 EventChartCustom() 함수를 사용해야 합니다.
ENUM_CHART_EVENT
ID |
설명 |
|---|---|
CHARTEVENT_KEYUP |
키 놓기 |
CHARTEVENT_KEYDOWN |
키 입력 |
CHARTEVENT_MOUSE_MOVE |
마우스 이동, 마우스 클릭 (CHART_EVENT_MOUSE_MOVE=true 로 차트에 설정된 경우) |
CHARTEVENT_MOUSE_WHEEL |
마우스 휠을 누르거나 스크롤 (차트에 대해 CHART_EVENT_MOUSE_WHEEL=True 인 경우) |
CHARTEVENT_OBJECT_CREATE |
그래픽 객체 생성됨 (차트에 대해 CHART_EVENT_OBJECT_CREATE=true 가 설정된 경우) |
CHARTEVENT_OBJECT_CHANGE |
그래픽 객체 속성이 특성 대화상자를 통해 변경되었습니다 |
CHARTEVENT_OBJECT_DELETE |
그래픽 객체 삭제됨 (CHART_EVENT_OBJECT_DELETE=true 가 차트에 대해 설정된 경우) |
CHARTEVENT_CLICK |
차트에 클릭 |
CHARTEVENT_OBJECT_CLICK |
다음에 대해 클릭: 그래픽 객체 |
CHARTEVENT_OBJECT_DRAG |
드래그 및 드롭: 그래픽 객체 |
CHARTEVENT_OBJECT_ENDEDIT |
그래픽 객체 편집의 텍스트 편집 끝 |
CHARTEVENT_CHART_CHANGE |
특성 대화상자를 통한 차트 크기 변경 또는 차트 속성 수정 |
CHARTEVENT_CUSTOM |
커스텀 이벤트 범위의 초기 이벤트 수 |
CHARTEVENT_CUSTOM_LAST |
커스텀 이벤트 범위에서 이벤트의 최종 번호 |
CHARTEVENT_KEYUP 이벤트
CHARTEVENT_KEYUP 이벤트는 차트 창에 입력 포커스가 있는 동안 사용자가 키를 놓으면 발생합니다. 이 이벤트는 키를 누르면 생성되는 현재 CHARTEVENT_KEYDOW을 보완합니다. 두 이벤트를 모두 사용하면 키가 눌리고 놓이는 시점을 정확하게 판단할 수 있습니다. 이는 대화형 컨트롤이 있는 사용자 인터페이스와 도구를 만들 때 유용합니다.
void OnChartEvent(const int id,
|
lparam (KeyCode)와 유사한 내용이 포함되어 있는데 이는 CHARTEVENT_KEYDOW 이벤트와 유사합니다. 이 TranslateKey() 함수를 사용하여 키의 텍스트 표현을 얻습니다.
Handling dead keys
소위 "데드 키"를 처리하는 것이 지원됩니다. 데드 키는 문자를 즉시 입력하지 않지만 다음에 입력되는 문자의 모양을 바꾸는 키입니다. 예를 들어 그리스어 레이아웃에서는 키 ;는 모음(ά, έ, ύ 등)에 강세를 두는 데 사용됩니다.
이제 이러한 키는 다음을 사용하여 추적할 수 있습니다. 추적은TranslateKey() 함수 를 사용해 기능하며 이 함수는 CHARTEVENT_KEYDOWN 그리고>CHARTEVENT_KEYUP 핸들러에 있습니다. 이를 통해 다국어 레이아웃에서 복잡한 키 조합을 눌렀다 놓는 것을 정확하게 감지할 수 있습니다.
void OnChartEvent(const int id,
|
사용자 정의 텍스트 필드, 단축키 시스템 및 국제 키보드 레이아웃을 구현하는 인터페이스를 구현할 때 데드 키를 처리하는 것이 유용합니다.
OnChartEvent 함수 입력
각 이벤트 유형에 대해 OnChartEvent() 함수의 입력 매개 변수에는 이 이벤트 처리에 필요한 한정된 값이 있습니다. 이 매개 변수를 통과하는 이벤트 및 값은 아래 표에 나열되어 있습니다.
Event |
id 매개 변수 값 |
lparam 매개변수 값 |
dparam 매개변수 값 |
sparam 매개변수 값 |
|---|---|---|---|---|
키 릴리스 이벤트 |
CHARTEVENT_KEYUP |
릴리즈된 키 코드 |
이벤트 반복 횟수는 항상 1입니다. |
제어자 키의 상태를 설명하는 비트 마스크 문자열 값. WM_KEYUP message를 확인하세요 |
Keypress 이벤트 |
CHARTEVENT_KEYDOWN |
누른 키 코드 |
키가 눌려 있는 동안 이벤트 반복 횟수 |
제어자 키의 상태를 설명하는 비트 마스크 문자열 값. WM_KEYDOWN message를 확인하세요 |
마우스 이벤트 (차트에 대해 CHART_EVENT_MOUSE_MOVE=true 가 설정된 경우) |
CHARTEVENT_MOUSE_MOVE |
X 좌표 |
Y 좌표 |
마우스 버튼의 상태를 설명하는 비트 마스크의 문자열 값 |
마우스 휠 이벤트 (차트에 대해 CHART_EVENT_MOUSE_WHEEL=true 인 경우) |
CHARTEVENT_MOUSE_WHEEL |
마우스 포인터의 X 및 Y 좌표와 키 및 마우스 버튼의 상태 플래그. 다음을 참조하십시오: 아래 예제 |
마우스 휠 스크롤의 델타 값 |
— |
그래픽 객체 생성 이벤트 (차트에 대해 CHART_EVENT_OBJECT_CREATE=true 로 설정된 경우) |
CHARTEVENT_OBJECT_CREATE |
— |
— |
생성된 그래픽 개체의 이름 |
속성 대화상자를 통한 객체 속성 변경 이벤트 |
CHARTEVENT_OBJECT_CHANGE |
— |
— |
수정된 그래픽 개체의 이름 |
그래픽 객체 삭제 이벤트 (CHART_EVENT_OBJECT_DELETE=true 가 차트에 대해 설정된 경우) |
CHARTEVENT_OBJECT_DELETE |
— |
— |
삭제된 그래픽 개체의 이름 |
차트를 마우스로 클릭하는 이벤트 |
CHARTEVENT_CLICK |
X 좌표 |
Y 좌표 |
— |
차트에 속한 그래픽 개체를 마우스로 클릭하는 이벤트 |
CHARTEVENT_OBJECT_CLICK |
X 좌표 |
Y 좌표 |
이벤트가 발생한 그래픽 개체의 이름 |
마우스를 사용하여 그래픽 개체를 드래그하는 이벤트 |
CHARTEVENT_OBJECT_DRAG |
— |
— |
이동된 그래픽 개체의 이름 |
레이블 편집 그래픽 객체의 입력 상자에서 완료된 텍스트 편집 이벤트 |
CHARTEVENT_OBJECT_ENDEDIT |
— |
— |
다음의 이름: 텍스트 편집이 완료된 LabelEdit 그래픽 객체 |
변경 이벤트 - 특성 대화상자를 통한 차트 크기 또는 차트 속성 수정에 대한 |
CHARTEVENT_CHART_CHANGE |
— |
— |
— |
N 넘버 이하의 유저 이벤트 ID |
CHARTEVENT_CUSTOM+N |
EventChartCustom() 함수에 의해 설정된 값 |
EventChartCustom() 함수에 의해 설정된 값 |
EventChartCustom() 함수에 의해 설정된 값 |
예제:
#define KEY_NUMPAD_5 12
|
CHARTEVENT_MOUSE_MOVE 이벤트의 경우 sparam 문자열 매개변수는 키보드 및 마우스 버튼의 상태에 대한 정보를 포함합니다:
Bit |
설명 |
|---|---|
1 |
마우스 좌측 버튼 상태 |
2 |
마우스 우측 버튼 상태 |
3 |
SHIFT 버튼 상태 |
4 |
CTRL 버튼 상태 |
5 |
마우스 중간 버튼 상태 |
6 |
마우스 첫 여분 버튼 상태 |
7 |
마우스 둘째 여분 버튼 상태 |
예제:
//+------------------------------------------------------------------+
|
CHARTEVENT_MOUSE_WHEEL 이벤트의 경우 파라미터 lparam 및 dparam 에는 마우스 버튼, 커서 좌표 및 마우스 휠 스크롤 값의 Ctrl 및 Shift 키 상태에 대한 정보가 포함됩니다.더 알아보고 싶으시다면 차트에서 이 Expert Advisor를 실행하고 마우스 휠을 스크롤한 상태에서 다른 버튼을 누르고 코드에 설명된 키를 누르십시오.
예제 - CHARTEVENT_MOUSE_WHEEL 이벤트 처리:
//+------------------------------------------------------------------+
|
더 보기