Skip to content

amolchanov/snap-annotate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

7 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SnapAnnotate

A lightweight Win32 screen annotation tool for Windows that lets you draw shapes, add text, and capture annotated screenshots with a single hotkey.

MSBuild Windows C++ License

Features

Drawing Tools

  • 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

  • Eraser Tool - Erase drawn elements

Screenshot & Save

  • 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

Quick Capture Mode

  • Enable in settings for instant screenshots without the overlay
  • Press hotkey to immediately capture and save the screen
  • Great for rapid documentation workflows

System Integration

  • Global Hotkey: Ctrl+Shift+S to activate from anywhere
  • System Tray: Runs in background with tray icon
  • Context Menu: Right-click tray for settings and exit

Keyboard Shortcuts

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

Building

Requirements

  • Windows 10/11
  • Visual Studio 2022 with "Desktop development with C++" workload
  • Windows SDK 10.0 or later

Build with Visual Studio

  1. Open SnapAnnotate.sln in Visual Studio 2022
  2. Select Release | x64 configuration
  3. Build → Build Solution (or press F7)
  4. Output: bin\Release\SnapAnnotate.exe

Build from Command Line

# Open Developer Command Prompt for VS 2022, then:
cd C:\path\to\SnapAnnotate
msbuild SnapAnnotate.sln /p:Configuration=Release /p:Platform=x64

Or 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

Usage

  1. Run SnapAnnotate.exe - it minimizes to the system tray
  2. Press Ctrl+Shift+S to activate the annotation overlay
  3. Select a tool from the floating toolbar (or use number keys 1-8)
  4. Choose a color and stroke size
  5. Draw on the screen
  6. Save by clicking the Save button or pressing Ctrl+S
  7. The file path is automatically copied to your clipboard

System Tray Menu

Right-click the tray icon to access:

  • Set Output Folder... - Choose where screenshots are saved
  • Settings... - Configure app preferences
  • Exit - Close the application

Configuration

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)

Project Structure

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

Technical Details

  • Language: C++20
  • UI Framework: Win32 API with GDI+ for rendering
  • Architecture: x64
  • Dependencies: Windows SDK only (no external libraries)

License

MIT License - Feel free to use, modify, and distribute.

Contributing

Contributions are welcome! Please feel free to submit issues and pull requests.


Made with ❤️ for Windows power users

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors