咕噜咕噜? 鼠标点击事件处理!!! - 页 4

 
使用on_MouseDown而不是on_Click
 
FAQ:
使用on_MouseDown而不是on_Click
非常感谢你。
 

谢谢你,谢谢你,问题以相当快的方式得到了解决。

我更喜欢这种语言!!!!

 
Vladon:

谢谢你,谢谢你,这个问题以相当快的方式得到了解决。

我更喜欢这种语言!!!!

启迪

ZS.快速看了一下可能发生的事件,立即对此事有了一些想法。有趣的确认。

 

我也有一个小面板。

它的工作原理是点击一个物体,另外你还需要按CTRL作为 "儿童保护"。

一旦被按下,这些按钮就被设置为假的。

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作为 "儿童保护"。

一旦被按下,这些按钮就被设置为假的。

我明白了,我就是这样开始的: http://codebase.mql4.com/ru/6091

然后像这样:https://www.mql5.com/ru/code/223/

然后像这样:https://www.mql5.com/ru/market/product/332

ZS,不。这不是广告。不要把它扔给我。我只是从中得到了乐趣,一夜之间就从2个链接变成了3个。有趣的意见。

这不是因为我很贪婪。我需要钱,孩子还小,要求却很大。我有什么资格说。每个人都在这个位置 上。

常见问题

启迪

ZS.快速看了一下可能发生的事件,立即对此事有了一些想法。有趣的确认。

我没有使用任何附加库,因为我不喜欢它们。!!!!。说实话,我写它并不是为了得到完整的代码,只是像往常一样,在裤子上踢一脚而已 :-)

我使用了通常的

CHARTEVENT_MOUSE_MOVE

它有一个左键按下的状态,在3个参数中,如果按钮被按下,就会发出1。

确定这个坐标的位置,并与按下这个按钮的坐标进行比较--1级。

我只是没有想到MKL5的语言如此先进。

 

现在我正在努力拖动面板,而拖动与大多数面板不同--你按下按钮,然后是一个甚至不可见的小方块--你拖动它然后释放按钮--然后一切都被重新绘制。

我使整个面板在光标后面拖动,直到它不被挤压为止,但到底如何使它在你点击按钮时不再拖动?:-)

我想你可以说:。

是的,这很容易 :-)

不容易:-)而且整个问题是它不能同时处理两个拍子。

 
Vladon:

现在我正在努力拖动面板,拖动不像大多数面板那样--你按下按钮,然后对于一个甚至不可见的小方块--你拖动它,然后释放按钮--然后所有东西都被重新绘制。


不容易:-)但问题是,它不能同时处理两个sobytes。

也许使用标准库 更容易?请看一个例子--MQ的Controls.mq5。
Документация по MQL5: Стандартная библиотека
Документация по MQL5: Стандартная библиотека
  • www.mql5.com
Стандартная библиотека - Документация по MQL5
 

Vladon:

我已经让整个面板在光标后面拖动,直到它被释放,但我到底怎样才能让它在我按下按钮时再次停止拖动?:-)

我们说的是哪个按钮?
 
sergeev:
我们谈论的是什么按钮?

我指的是鼠标左键。

尤里奇
也许使用标准库 更容易?请看一个例子--MQ的Controls.mq5。

大家都这么说,但我这个程序员为什么要使用标准库呢?:-)

例如,在拖动图表时意外点击鼠标左键的错误,我用2行标准函数就解决了,而库中有1000行代码。

我不是在争论--标准库的使用可能更有利可图。但我更喜欢一种容易获得的方式,而不需要费力地纳入额外的库。