void Draw(Graphics& g, int left, int top, int width, int height, Bitmap& bitmap)
{
HBITMAP hBmp;
HBITMAP* hOldBmp = NULL;
bitmap.GetHBITMAP(Color(0,0,0), &hBmp);
CDC dc;
HDC hdc = g.GetHDC();
dc.Attach(hdc);
CDC MemDC;
MemDC.CreateCompatibleDC(&dc);
hOldBmp = (HBITMAP*)MemDC.SelectObject(hBmp);
COLORREF backgroundColor = RGB(0,0,255);
dc.TransparentBlt(
left, top, width, height,
&MemDC,
0, 0, bitmap.GetWidth(), bitmap.GetHeight(),
backgroundColor);
MemDC.SelectObject(hOldBmp);
DeleteObject(hBmp);
MemDC.DeleteDC();
dc.Detach();
dc.DeleteDC();
g.ReleaseHDC(hdc);
}