每当我编写鼠标处理代码时,onmousedown / onmouseup / onmousemove模型似乎总是迫使我产生不必要的复杂代码,最终导致各种各样的UI错误。
这些天我在主要软件中看到的主要问题是“鬼鼠”事件,你拖到窗外然后放手。返回窗口后,即使按钮已启动,应用程序仍然认为您已将鼠标按下。当你试图突出显示屏幕边框的东西时,这尤其令人讨厌。
是否有正确的方法来编写鼠标代码,或者整个模型是否有缺陷?
答案 0 :(得分:2)
通常一个人在鼠标按下时捕获鼠标事件,因此鼠标移动和鼠标移动都会通过您的代码,无论插入符号移出您的应用程序窗口。
最近这是运行VM或远程会话时出现的问题,这些应用程序难以在主机上的窗口所代表的机器屏幕区域之外跟踪鼠标。
答案 1 :(得分:0)
我不确定您尝试跟踪鼠标按钮的环境,但处理此问题的最佳方法是让鼠标监听器在您检测到onmousedown后100%的时间跟踪onmouseup。
这样,用户释放鼠标按钮的屏幕区域无关紧要。无论发生在何处,都会重置。