拖动一个窗口

时间:2015-01-04 01:08:39

标签: drag-and-drop

我试图找出如何正确拖动窗口。 我的拖动算法类似于

if(left button is pressed and mouse intersects shape)
   set position of shape to mouse position.x and mouse position.y

因此在设置位置后,形状的左上角位于鼠标位置x和y。

我真的很感激如何实现正确拖动的小建议。

1 个答案:

答案 0 :(得分:2)

可能需要单独处理鼠标事件,因此不仅要检查是否按下了左键,还必须处理鼠标按下/向上事件(以确保只在按下鼠标时才开始拖动在你的形状内而不是之前)。

如果您的拖动操作已经开始,可能还需要记住标记(这样您就知道在鼠标移动时必须移动形状)。

if(mouse down and mouse on shape)
{
   start drag operation 
   var lastMousePosition = getCurrentMousePosition;
}
if(mouse moving and drag started)
{
  var newMousePosition = getCurrentMousePosition;
  var diff = newMousePosition - lastMousePosition;
  add diff to current shape position
  lastMousePosition = newMousePosition;

}
if(mouse released)
{
   stop drag operation.
}