The cursor is defined in pixels. You do not zoom the cursor since the size is fixed regardless of zoom feature. Cursors are usually drawn as sprites using bitblt operations, i.e. it is layered on top of any foreground and background images. It really depends on what graphics capabilities and support comes with your hardware.But i dont think you yet described how you would render the graphic on screen when the mouse moves. It has to be in real time and the mouse pointer has to remain right over the part that is changed by the move.
Cursors in my graphics programs are generally of two styles only, an arrowhead and cross-hairs. For these I chose to use line vectors drawn in XOR mode. With this mode my cursors can traverse the screen and I don't have to worry about destroying the underlying images in foreground or background.