js拖动层中的一个不得不注意的问题

来源:luqidong 发布时间:2013-08-29 19:04:53 点击数:

js拖动层函数写完,发现鼠标不能快速拖动,稍微一快就会跑到层外面去,原因在这里:

当鼠标按下去的时候应该调用函数 obj.setCapture() 来锁定鼠标输入时间只针对当前层;

当鼠标放开时调用 obj.releaseCapture() 来释放锁定。

obj.setCapture()

函数功能:该函数在属于当前线程的指定窗口里设置鼠标捕获。一旦窗口捕获了鼠标,所有鼠标输入都针对该窗口,无论光标是否在窗口的边界内。同一时刻只能有一个窗口捕获鼠标。如果鼠标光标在另一个线程创建的窗口上,只有当鼠标键按下时系统才将鼠标输入指向指定的窗口。

obj.releaseCapture()

  函数功能:该函数从当前线程中的窗口释放鼠标捕获,并恢复通常的鼠标输入处理。捕获鼠标的窗口接收所有的鼠标输入(无论光标的位置在哪里),除非点击鼠标键时,光标热点在另一个线程的窗口中。

 
  函数原型:BOOL ReleaseCapture(VOlD)

 
  参数:无。

 
  返回值:如果函数调用成功,返回非零值;如果函数调用失败,返回值是零。若想获得更多的错误信息,请调用GetlastError函数。

 
  备注:应用程序在调用函数SetCaPture之后调用此函数。