글럭?! 마우스 클릭 이벤트 처리!!! - 페이지 4

 
on_Click 대신 on_MouseDown 사용
 
FAQ :
on_Click 대신 on_MouseDown 사용
매우 감사합니다
 

덕분에 문제가 상당히 빠르게 해결되었습니다.

나는 이 언어를 더 사랑한다!

 
Vladon :

덕분에 문제가 상당히 빨리 해결되었습니다.

나는 이 언어를 더 사랑한다!

밝히다

추신. 나는 가능한 사건들을 재빨리 살펴보았고 즉시 이것에 대해 몇 가지 생각이 떠올랐다. 흥미로운 확인.

 

작은 패널도 있습니다.

개체를 클릭하여 작동합니다. 또한 "어린이로부터 보호"로 Ctrl 키를 눌러야 합니다.

버튼을 클릭하면 false로 변환됩니다.

 if (id== CHARTEVENT_OBJECT_CLICK && key== true )
     {
       if (sparam== "buy" )  { Print ( "Нажата BUY" );OpenBuy();} 
       if (sparam== "sell" )  { Print ( "Нажата SELL" );OpenSell(); }  
       if (sparam== "wl" )  { Print ( "Нажата WL" );ModifyWl();}
       if (sparam== "sellstop" )  { Print ( "Нажата SELL STOP" );SellStop();}  
       if (sparam== "buystop" )  { Print ( "Нажата BUY STOP" );BuyStop();}
       if (sparam== "delpend" )  { Print ( "Нажата DELETE" );DelPend();}
     
       ChartRedraw ();
     }
   if (id== CHARTEVENT_KEYDOWN )
     {
       if (lparam==KEY_CTRL) {key= true ;} else {key= false ;}
     }
 // востановим кнопки
 graf_button( "buy" , 270 , 5 , clrBlue , "BUY" , 12 , 3 , false );
 graf_button( "sell" , 210 , 5 , clrCrimson , "SELL" , 12 , 3 , false );
 graf_button( "wl" , 150 , 5 , clrBlack , "WL" , 12 , 3 , false );
 
 graf_button( "buystop" , 270 , 30 , clrDarkBlue , "B.STOP" , 12 , 3 , false );
 graf_button( "sellstop" , 150 , 30 , clrCrimson , "S.STOP" , 12 , 3 , false );
 graf_button( "delpend" , 210 , 30 , clrBlack , "DEL" , 12 , 3 , false );
 
Karlson :

작은 패널도 있습니다.

개체를 클릭하여 작동합니다. 또한 "어린이로부터 보호"로 Ctrl 키를 눌러야 합니다.

버튼을 누른 후 false로 변환됩니다.

글쎄요, 이해할 수 있습니다. 또한 다음과 같이 시작했습니다. http://codebase.mql4.com/en/6091

다음과 같이: https://www.mql5.com/en/code/223/

다음과 같이: https://www.mql5.com/ru/market/product/332

ZY, 아니. 이것은 광고가 아닙니다. 나에게 자신을 던지지 마십시오. 간단히 말해서, 그들은 킥을 했고 2개의 링크에서 저녁에 문자 그대로 3개에 도달했습니다. 흥미로운 의견입니다.

그리고 그것은 내가 탐욕스러워서가 아니라 크레딧의 가치가 있습니다. 나다 돈. 아이들은 작고 요구 사항은 큽니다. 글쎄, 내가 누구에게 말하고 있습니까? 모두가 이 위치에 있습니다.  

자주 묻는 질문 :

밝히다

추신. 나는 가능한 사건들을 재빨리 살펴보았고 즉시 이것에 대해 몇 가지 생각을 일으켰습니다. 흥미로운 확인.

추가 라이브러리가 마음에 들지 않아 사용하지 않았습니다.!!!! 그리고 솔직히, 나는 전체 코드를 제공하기 위해 여기에 글을 쓰지 않았지만, 언제나처럼 그들은 나에게 킥을 주었습니다 :-)

일반 사용

CHARTEVENT_MOUSE_MOVE

게다가 왼쪽 버튼을 누른 상태를 가지고 있는데 3번째 파라미터에서 버튼을 누르면 1을 출력한다.

이 좌표의 위치를 결정하고이 버튼의 릴리스 좌표 - 1 클래스와 비교하십시오.

MKL5 언어가 그렇게 확장된 줄은 몰랐습니다.

 

이제 저는 패널을 드래그하는 작업을 하고 있으며 드래그는 대부분의 패널과 다릅니다. 버튼을 누른 다음 보이지 않는 작은 사각형을 위해 드래그한 다음 버튼을 놓으면 모든 것이 다시 그려집니다.

패널 전체를 커서 뒤로 드래그하여 놓을 때까지 만들었는데, 버튼을 눌렀을 때 드래그를 멈추게 하려면 어떻게 해야 하나요? :-)

당신이 말할 수있는 것처럼 :

큭큭큭큭큭큭큭-

쉽지는 않습니다 :-) 하지만 전체 문제는 동시에 두 개의 이벤트를 처리하지 않는다는 것입니다.

 
Vladon :

이제 저는 패널을 드래그하는 작업을 하고 있으며 드래그는 대부분의 패널과 다릅니다. 버튼을 누른 다음 보이지 않는 작은 사각형을 위해 드래그한 다음 버튼을 놓으면 모든 것이 다시 그려집니다.


쉽지는 않습니다 :-) 하지만 전체 문제는 동시에 두 개의 이벤트를 처리하지 않는다는 것입니다.

어쩌면 표준 라이브러리를 사용하는 것이 더 쉬울까요? MQ의 Controls.mq5 예제를 보십시오.
Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5
 

Vladon :

패널 전체를 커서 뒤로 드래그하여 놓을 때까지 만들었는데, 버튼을 눌렀을 때 드래그를 멈추게 하려면 어떻게 해야 하나요? :-)

무슨 버튼 말씀이세요?
 
sergeev :
무슨 버튼 말씀이세요?

나는 마우스의 왼쪽 배턴을 의미했습니다.

유리히 :
어쩌면 표준 라이브러리를 사용하는 것이 더 쉬울까요? MQ의 Controls.mq5 예제를 보십시오.

다들 그렇게 말하는데 프로그래머인 내가 왜 표준 라이브러리를 사용해야 하지? :-)

예를 들어 차트를 드래그할 때 우발적으로 버튼의 왼쪽 버튼을 눌렀을 때 발생하는 글리치는 2줄의 표준 함수로 해결했으며 라이브러리에서는 1000줄의 코드로 작성되었습니다.

나는 논쟁하지 않는다 - 표준 라이브러리는 사용하기에 더 유리할 수 있다. 그러나 나는 쉽게 접근할 수 있는 방법을 선호하고 추가 라이브러리를 포함하는 것을 귀찮게 하지 않습니다.