2009-07-01 96 views
0

自从我做了任何VB6以来,它一直是yonks ...VB6 - 在两点之间平滑移动鼠标指针?

我需要控制鼠标指针并在两点之间平滑地移动它。

最好的方法是将GetCursorPos,SetCursorPos和一个或两个计时器组合起来,还是有更好的方法?

感谢您的任何帮助。

回答

1

使用SetCursorPos与计时器在两点之间移动光标听起来像对我来说最明智的方式。 (为什么你甚至需要使用GetCursorPos?)

你是否希望有其他的解决方案?如果没有WinAPI,你肯定无法执行此任务,但可能有另一个功能可以实现你想要的功能。

+0

@Noldorin - 谢谢,我想我将需要GetCursorPos,因为需要相对于当前位置设置新的光标位置。我只是觉得可能会有其他一些我可以用来关注点之间平滑性的电话。也许一厢情愿。 – Galwegian 2009-07-01 10:05:35

+0

@Garwegian:没问题。而且,对于GetCursorPos的使用来说还算公平。可能有一些函数可以平滑地移动光标,但是我没有在WinAPI周围徘徊。随着时间的推移简单线性插值应该做得很好。 :) – Noldorin 2009-07-01 21:14:34

1

如上所述,带定时器的Get/SetCursorPos是票据。值得尝试一下计时器周期和位置增量,以便按照您的要求顺利执行每个操作的最大值,但不会更多。

分离X和Y的增量,移动更大距离的数字,并使用Bresenham绘制点之间的不可见线。

一个天真的解决方案可能会在每次更新视频时移动光标不止一次,或者每步移动光标不到4个像素,这会浪费时间。