Crosshair Cursor

A Windhawk mod for Windows that replaces the arrow pointer with a customizable full-screen crosshair, an optional AutoCAD-style reticle, and a toggle hotkey.

C++Win32 APIWindhawkGDI

Windhawk Mod

Crosshair Cursor

A Windhawk mod for Windows that replaces the standard arrow pointer with a customizable crosshair, an optional AutoCAD-style reticle, and a hotkey to toggle it on and off.

What It Does

The arrow pointer is swapped for horizontal and vertical hairs that follow the mouse. At full length the hairs run from edge to edge of whichever monitor the pointer is on, which makes it easy to line things up across a screen — handy for design work, screenshots, spreadsheets, and accessibility.

Text, link, wait, and resize pointers are left alone by default, so normal Windows feedback still works. Enable Override app cursors to keep the crosshair up everywhere.

Settings

  • Hair length: Percentage of the monitor under the pointer. 100 spans edge to edge.
  • Color: Hair color as #RRGGBB. Windhawk 2.0 shows a color picker.
  • Thickness: Hair thickness in pixels, from 1 to 64.
  • Crosshair opacity: From 0 (invisible) to 100 (solid).
  • Reticle: An AutoCAD-style hollow square centered on the pointer.
  • Reticle size: Outer side length of the square, from 4 to 128 pixels.
  • Reticle opacity: Set independently of the hairs.
  • Override app cursors: Keeps the crosshair when a program changes the pointer, such as links and text in a browser.
  • Toggle hotkey: Shows or hides the crosshair without disabling the mod, e.g. Ctrl+Alt+C.

Works with both Windhawk 1.7.3 and Windhawk 2.0. On 2.0 you get sliders, a color picker, and a shortcut recorder; on 1.7.3 the same settings appear as text and number fields.

How It Works

  • Runs as a Windhawk tool mod in its own process rather than inside Explorer, so a problem in the mod can't take down the shell.
  • The system arrow is replaced with a blank cursor via SetSystemCursor, and the hairs and reticle are drawn as click-through, topmost layered windows using UpdateLayeredWindow with per-pixel alpha.
  • The overlay tracks the pointer on a ~60 fps timer and respects multi-monitor bounds.
  • When app cursor override is on, a lightweight hook on SetCursor inside other processes keeps programs from swapping the pointer back.
  • The crosshair still hides whenever an app hides the pointer, such as during video playback.
  • Disabling or removing the mod restores the pointer scheme from Mouse settings.
Note: If a crash ever leaves the arrow hidden, open Mouse settings and reapply your pointer scheme, or enable the mod again and then disable it.

Project Details

Version: 0.7
Author: Jay Simons
License: MIT
Requires: Windhawk
C++Win32 APIWindhawkGDI

Webmentions

Loading mentions…