Personalmente ne ho realizzato uno per un progetto per l'acquisizione dati ad alta velocita'.

Doveva essere integrato in un progetto VB6 ma l'ho realizzato in C++ per questioni di efficienza (e per sfruttare il multithreading ed OpenGL).

Se la velocita' richiesta non e' alta, potresti scrivere facilmente qualcosa utilizzando una Picture ed il metodo Line ... oppure potresti utilizzare le API di GDI32 ...