Hello everyone.

I am starting to become a bit confused of all the possible "Graphics" that exist inside .NET. Till now I discovered four types of Graphics:
- HIcon, an handle to an ICON image
- HBitmap, an handle to a BITMAP image
- Hdc, an handle to a Device Context
- Graphics, an encapsulation class for GDI+

I can convert Graphics to a bitmap, as I just noticed, and can convert Hdc to Graphics and vice versa. What exactly are the differences between all these types of Graphics? Which type of Graphics is used in a Window and in "OnPaint" events? When specifying a double buffer, what IS this double buffer? Is the Graphics class an encapsulation of the Device Context? If the Graphics class is an encapsulation, why doesn't it have Get/SetPixel and a "ToBitmap" function, since you can transfer DC using BitBlt?