I've noticed gfx.setcursor changes the cursor and if you click and drag outside the gfx window, it maintains the cursor outside the gfx window until mouse up.
Now the problem is how to change the cursor after the first mouse_down in the gfx window. Because it also doesn't change until mouse up. I still don't know how gfx.setcursor works.