拖一个window
Dragging a window
我正在研究如何正确拖动 window。
我的拖动算法是这样的
if(left button is pressed and mouse intersects shape)
set position of shape to mouse position.x and mouse position.y
所以设置位置后形状的左上角在鼠标 position.x 和 y.
非常感谢有关如何正确实施拖动的小建议。
可能需要单独处理鼠标事件,因此除了检查左键是否按下之外,您还必须处理鼠标 down/up 事件(以确保您的拖动仅在按下时开始您将鼠标按在形状内部而不是之前)。
如果你的拖动操作已经开始,可能还需要用一个标志来记住(这样你就知道你必须在鼠标移动时移动你的形状)。
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.
}
我正在研究如何正确拖动 window。 我的拖动算法是这样的
if(left button is pressed and mouse intersects shape)
set position of shape to mouse position.x and mouse position.y
所以设置位置后形状的左上角在鼠标 position.x 和 y.
非常感谢有关如何正确实施拖动的小建议。
可能需要单独处理鼠标事件,因此除了检查左键是否按下之外,您还必须处理鼠标 down/up 事件(以确保您的拖动仅在按下时开始您将鼠标按在形状内部而不是之前)。
如果你的拖动操作已经开始,可能还需要用一个标志来记住(这样你就知道你必须在鼠标移动时移动你的形状)。
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.
}