hdc = BeginPaint(hWnd, &ps);
RECT rt;
GetClientRect(hWnd, &rt);
HDC hdcClient = GetDC(hWnd);
HDC hdcDraw = CreateCompatibleDC(hdcClient);
HBITMAP hbmpNew = CreateCompatibleBitmap(hdcClient,rt.right - rt.left,rt.bottom - rt.top);
SelectObject(hdcDraw,hbmpNew);
HDC hdcSrc = CreateCompatibleDC(hdcClient);
SelectObject(hdcSrc, g_hbmp);
BitBlt(hdcDraw, 0, 0, rt.right - rt.left, rt.bottom - rt.top, hdcSrc, 0, 0, SRCCOPY);
Graphics graphics(hdcDraw);
HDC hdcDrawEllipse = CreateCompatibleDC(hdcClient);
HBITMAP hbmpNewEllipse = CreateCompatibleBitmap(hdcClient,g_ix,g_iy);
SelectObject(hdcDrawEllipse,hbmpNewEllipse);
StretchBlt(hdcDrawEllipse, 0, 0, g_ix, g_iy, hdcSrc, g_iPointx-g_ix/4, g_iPointy-g_iy/4,g_ix/2,g_iy/2, SRCCOPY);
HDC hdcDrawEllipseBack = CreateCompatibleDC(hdcClient);
HBITMAP hbmpNewEllipseBack = CreateBitmap(g_ix, g_iy, 1, 1, 0);
SelectObject(hdcDrawEllipseBack,hbmpNewEllipseBack);
SolidBrush blackBrush(Color(255, 255, 255, 255));
RectF ellipseRect(0, 0, g_ix, g_iy);
Graphics graphicsEllipseBack(hdcDrawEllipseBack);
graphicsEllipseBack.FillEllipse(&blackBrush, ellipseRect);
SetTextColor( hdcDrawEllipse, RGB(0, 0, 0));// 图片的前景部分被挖空成黑色
SetBkColor(hdcDrawEllipse,RGB(255, 255, 255));// 图片的背景部分留下
BitBlt(hdcDrawEllipse, 0, 0, g_ix, g_iy, hdcDrawEllipseBack, 0,0, SRCAND);
SetTextColor( hdcDraw, RGB(255, 255, 255));// 图片的前景部分被挖空成黑色
SetBkColor( hdcDraw, RGB(0, 0, 0));// 图片的背景部分留下
BitBlt(hdcDraw, g_iPointx-g_ix/2, g_iPointy-g_ix/2, g_ix, g_ix, hdcDrawEllipseBack, 0, 0, SRCAND);
BitBlt(hdcDraw, g_iPointx-g_ix/2, g_iPointy-g_ix/2, g_ix, g_ix, hdcDrawEllipse, 0, 0, SRCPAINT);
Example_RotateFlip(hdcDraw);
BitBlt(hdcClient, 0, 0, rt.right - rt.left, rt.bottom - rt.top, hdcDraw, 0, 0, SRCCOPY);
DeleteObject(hbmpNewEllipseBack);
DeleteDC(hdcDrawEllipseBack);
DeleteObject(hbmpNewEllipse);
DeleteObject(hbmpNew);
DeleteDC(hdcDrawEllipse);
DeleteDC(hdcSrc);
DeleteDC(hdcDraw);
DeleteDC(hdcClient);
EndPaint(hWnd, &ps);
break;