// 0. 大背景
HBRUSH hBrushBack = ::CreateSolidBrush(RGB(0, 0, 255));
HBRUSH hBrushOld = (HBRUSH)pDC->SelectObject(hBrushBack);
POINT ptArrayBack[4];
ptArrayBack[0].x = 0;
ptArrayBack[0].y = 0;
ptArrayBack[1].x = 0;
ptArrayBack[1].y = 1000;
ptArrayBack[2].x = 1000;
ptArrayBack[2].y = 1000;
ptArrayBack[3].x = 1000;
ptArrayBack[3].y = 0;
pDC->Polygon(ptArrayBack, 4);
pDC->SelectObject(hBrushOld);
::DeleteObject(ptArrayBack);
// 1. 填充
HBRUSH hBrush = ::CreateSolidBrush(RGB(255, 0, 0));
hBrushOld = (HBRUSH)pDC->SelectObject(hBrush);
POINT ptArray[4];
ptArray[0].x = 10;
ptArray[0].y = 10;
ptArray[1].x = 10;
ptArray[1].y = 100;
ptArray[2].x = 100;
ptArray[2].y = 100;
ptArray[3].x = 100;
ptArray[3].y = 10;
pDC->Polygon(ptArray, 4);
pDC->SelectObject(hBrushOld);
::DeleteObject(hBrush);
// 2. 位图画刷
DWORD dwColorbk = pDC->GetBkColor();
pDC->CDC::SetROP2(R2_XORPEN);
pDC->SetBkColor(RGB(255, 255, 255));
pDC->SetBkMode(TRANSPARENT);
static BYTE bits[] = { 0xAA,0,0x44,0,0xAA,0,0x11,0,0xAA,0,0x44,0,0xAA,0,0x11,0 };
HBITMAP hBitmap;
static BITMAP bitmap = { 0,8,8,2,1,1 };
bitmap.bmBits = (PSTR)bits;
hBitmap = ::CreateBitmapIndirect(&bitmap);
HBRUSH hBrHighlight = ::CreatePatternBrush(hBitmap);
hBrushOld = (HBRUSH)pDC->SelectObject(hBrHighlight);
HGDIOBJ hNULL = GetStockObject(NULL_PEN);
HGDIOBJ hPenOld = (HGDIOBJ)pDC->SelectObject(hNULL);
pDC->SetTextColor(RGB(255, 0, 0));
POINT ptArray2[4];
ptArray2[0].x = 200;
ptArray2[0].y = 10;
ptArray2[1].x = 200;
ptArray2[1].y = 100;
ptArray2[2].x = 300;
ptArray2[2].y = 100;
ptArray2[3].x = 300;
ptArray2[3].y = 10;
pDC->Polygon(ptArray, 4);
pDC->Polygon(ptArray2, 4);
pDC->SelectObject(hPenOld);
/*::DeleteObject(hPen);*/
pDC->SelectObject(hBrushOld);
::DeleteObject(hBrHighlight);
05-09
724