A lightweight Win32 screen annotation tool for Windows that lets you draw shapes, add text, and capture annotated screenshots with a single hotkey.
- Rectangle - Draw rectangular shapes
- Rounded Rectangle - Draw rectangles with rounded corners
- Ellipse/Circle - Draw elliptical or circular shapes
- Arrow - Draw arrows to point at specific areas
- Line - Draw straight lines
- Freehand - Draw freehand with mouse/pen
- Highlighter - Semi-transparent highlighting (like a marker)
- Text - Click anywhere to add text annotations
- Delete Marker - Draw rectangle with X cross to mark areas for deletion
- Mask Eraser - Draw rectangle that masks/hides background in final screenshot
- Cut & Paste - Select an area and move it to a new position
- Eraser Tool - Erase drawn elements
- Captures screen without cursor or UI elements
- Saves as PNG to configurable folder
- Auto-generates timestamped filenames
- Copies file path to clipboard automatically
- Optional: Copy image directly to clipboard
- Enable in settings for instant screenshots without the overlay
- Press hotkey to immediately capture and save the screen
- Great for rapid documentation workflows
- Global Hotkey:
Ctrl+Shift+Sto activate from anywhere - System Tray: Runs in background with tray icon
- Context Menu: Right-click tray for settings and exit
| Shortcut | Action |
|---|---|
Ctrl+Shift+S |
Activate overlay (global hotkey) |
Escape |
Cancel/close overlay |
Ctrl+S |
Save screenshot |
Ctrl+Z |
Undo last action |
Ctrl+Shift+Z / Ctrl+Y |
Redo |
1 |
Rectangle tool |
2 |
Ellipse tool |
3 |
Arrow tool |
4 |
Line tool |
5 |
Freehand tool |
6 |
Highlighter tool |
7 |
Text tool |
8 |
Eraser tool |
- Windows 10/11
- Visual Studio 2022 with "Desktop development with C++" workload
- Windows SDK 10.0 or later
- Open
SnapAnnotate.slnin Visual Studio 2022 - Select
Release | x64configuration - Build → Build Solution (or press
F7) - Output:
bin\Release\SnapAnnotate.exe
# Open Developer Command Prompt for VS 2022, then:
cd C:\path\to\SnapAnnotate
msbuild SnapAnnotate.sln /p:Configuration=Release /p:Platform=x64Or using the full MSBuild path:
& "C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\MSBuild.exe" SnapAnnotate.sln /p:Configuration=Release /p:Platform=x64- Run
SnapAnnotate.exe- it minimizes to the system tray - Press
Ctrl+Shift+Sto activate the annotation overlay - Select a tool from the floating toolbar (or use number keys 1-8)
- Choose a color and stroke size
- Draw on the screen
- Save by clicking the Save button or pressing
Ctrl+S - The file path is automatically copied to your clipboard
Right-click the tray icon to access:
- Set Output Folder... - Choose where screenshots are saved
- Settings... - Configure app preferences
- Exit - Close the application
Settings are stored in: %APPDATA%\SnapAnnotate\settings.ini
| Setting | Description |
|---|---|
| SavePath | Folder where screenshots are saved |
| CopyPathToClipboard | Copy file path after saving (1/0) |
| CopyImageToClipboard | Copy image to clipboard after saving (1/0) |
| PlaySound | Play sound on successful save (1/0) |
| QuickCapture | Skip overlay, save screenshot immediately on hotkey (1/0) |
| DefaultStrokeSize | Default pen size (1=Small, 2=Medium, 3=Large) |
| DefaultColor | Default drawing color (as RGB integer) |
SnapAnnotate/
├── src/
│ ├── main.cpp # Entry point, hotkey, tray icon
│ ├── OverlayWindow.cpp/h # Overlay window and floating toolbar
│ ├── DrawingCanvas.cpp/h # Drawing logic, undo/redo, eraser
│ ├── Tools.cpp/h # GDI+ shape drawing functions
│ ├── Settings.cpp/h # INI-based settings management
│ ├── Utils.cpp/h # Screen capture, file I/O, clipboard
│ ├── resource.h # Resource IDs
│ ├── SnapAnnotate.rc # Version info and resources
│ ├── SnapAnnotate.ico # Application icon
│ └── SnapAnnotate.manifest # DPI awareness manifest
├── SnapAnnotate.sln # Visual Studio solution
├── SnapAnnotate.vcxproj # Visual Studio project
├── CMakeLists.txt # CMake build (alternative)
└── README.md # This file
- Language: C++20
- UI Framework: Win32 API with GDI+ for rendering
- Architecture: x64
- Dependencies: Windows SDK only (no external libraries)
MIT License - Feel free to use, modify, and distribute.
Contributions are welcome! Please feel free to submit issues and pull requests.
Made with ❤️ for Windows power users