A while ago I was looking for a simple lightweight c++ library that could produce some basic charts. I quickly found the PPlot library which is designed to easily integrate with different GUI toolkits and also comes with bindings for ruby and python. To make the library usable within 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. If you’re in a similar situation check out my source for an example.