2009-07-01 95 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個像素,這會浪費時間。