A while ago I was looking for a simple lightweight C++ library that could produce some basic charts. I found the PPlot library which easily integrates with different GUI toolkits and also comes with bindings for Ruby and Python. To make the library usable with different GUI frameworks the drawing part has been abstracted to a Painter class. For each GUI framework a different Painter class must be implemented. The library comes with ready made implementations for GUI toolkits like wxWidgets and Qt. However, I wanted to use the PPlot library in a pure Win32 application and had to implement my own Painter class. Check out the result here.