Никак не могу разобраться с функцией BitBlt()
1)Почему, при использовании CreateCompatibleDC(hdc),CreateCompatibleBitmap() фон получается черным?
2) Не получается создать маску для эллипса создаваемого в контексте hdc.(либо черный прямоугольник, либо эллипс на черном фоне)
void OnPaint(HWND hwnd)
{
PAINTSTRUCT ps;
HDC dc = BeginPaint(hwnd, &ps);
HDC hdc=CreateCompatibleDC(dc);
HDC mask=CreateCompatibleDC(dc);
HBITMAP hbmMem = CreateCompatibleBitmap(dc,574, 375);
HBITMAP hbmMem1 = CreateCompatibleBitmap(dc,574, 375);
// hOld = SelectObject(hdc, hbmMem);
//BitBlt(hdcDest, x, y, dx, dy, hdcSrc, x0, y0, SRCINVERT)
//SetBkColor(hdc, RGB(0, 0, 0));
SelectObject(hdc,hbmMem);
HPEN pen1 = CreatePen(PS_SOLID, 2, RGB(255, 0, 0));
LOGBRUSH brushInfo1;
brushInfo1.lbStyle = BS_SOLID;
brushInfo1.lbColor = RGB(255, 255, 0);
brushInfo1.lbHatch = 0;
HBRUSH brush1 = CreateBrushIndirect(&brushInfo1);
HPEN pen = CreatePen(PS_SOLID, 2, RGB(255, 0, 0));
// .............. ............ ..........
LOGBRUSH brushInfo;
brushInfo.lbStyle = BS_SOLID;
brushInfo.lbColor = RGB(255, 255, 0);
brushInfo.lbHatch = 0;
HBRUSH brush = CreateBrushIndirect(&brushInfo);
HPEN oldPen = SelectPen(dc, pen1);
HBRUSH oldBrush = SelectBrush(dc, brush1);
SelectPen(hdc, pen);
SelectBrush(hdc, brush);
Ellipse(dc,0, 0,100, 100);
Ellipse(hdc,100, 50,250, 150);
HDC test=CreateCompatibleDC(hdc);
HBITMAP testm=CreateCompatibleBitmap(hdc,574,375);
SelectObject(test,testm);
BitBlt(test,0,0,574,375,hdc,0,0,SRCCOPY);
//BitBlt(test,0,0,574,375,hdc,0,0,SRCINVERT);
//BitBlt(test,0,0,574,375,hdc,0,0,SRCAND);
BitBlt(dc,100,200,574,375,test,0,0,SRCCOPY);
//BitBlt(dc,0,0,574,200,hdc,0,0,SRCPAINT);
//BitBlt(dc,0,0,574,200,hdc,0,0,SRCPAINT);
//BitBlt(dc,0,0,574,200,hdc,0,0,SRCINVERT);
SelectPen(hdc, oldPen);
SelectBrush(hdc, oldBrush);
DeletePen(pen);
DeleteBrush(brush);
EndPaint(hwnd, &ps);
}