2

每当我编写鼠标处理代码时,onmousedown/onmouseup/onmousemove 模型似乎总是迫使我编写不必要的复杂代码,最终仍会导致各种 UI 错误。

我最近在主要软件中看到的主要问题是“幽灵鼠标”事件,您将其拖到窗口外然后放开。一旦您返回到窗口,应用程序仍然认为您已按下鼠标,即使按钮已打开。当您试图突出显示屏幕边界的某些内容时,这尤其令人讨厌。

是否有编写鼠标代码的正确方法,或者整个模型是否存在缺陷?

4

2 回答 2

2

通常,在鼠标按下时捕获鼠标事件,因此鼠标移动和鼠标向上通过您的代码,而不管插入符号移出您的应用程序窗口。

最近,在运行 VM 或远程会话时,这是一个问题,其中的应用程序很难在主机上的窗口所代表的机器屏幕区域之外跟踪鼠标。

于 2009-03-20T08:28:01.800 回答
0

我不确定您尝试在什么环境中跟踪鼠标按钮,但处理此问题的最佳方法是让鼠标侦听器在您检测到 onmousedown 后 100% 的时间跟踪 onmouseup。

这样,用户在哪个屏幕区域释放鼠标按钮都无关紧要。无论它发生在哪里,它都会重置。

于 2009-03-20T09:17:15.037 回答