A similar Windows function,
SetCursorPos
, can be used to set the cursor position. The
SetCursorPos
function takes two
LONG
s. The following code defines an interface function to call
SetCursorPos
.
(fli:define-foreign-function (set-cursor-position "SetCursorPos")
((x :long)
(y :long))
:result-type :boolean)
For example, the cursor position can now be set to be near the top left corner by simply using the following command:
(set-cursor-position 20 20)
For a more extravagant example, define and execute the following function:
(defun test-cursor ()
(dotimes (x 10)
(dotimes (d 300)
(let ((r (/ (+ d (* 300 x)) 10.0)))
(set-cursor-position
(+ 300 (floor (* r (cos (/ (* d pi) 150.0)))))
(+ 300 (floor (* r (sin (/ (* d pi) 150.0)))))
)))))
(test-cursor)
LispWorks Foreign Language Interface User Guide and Reference Manual - 7 Dec 2011