Untitled
unknown
plain_text
5 months ago
1.4 kB
5
Indexable
void CKOLKVIJUM12023View::DrawImgTransparent(CDC* pDC, DImage* img) { CRect rect(0, 0, img->Width(), img->Height()); BITMAP bm; bm.bmWidth = rect.Width(); bm.bmHeight = rect.Height(); CBitmap* bmpImage = new CBitmap(); CBitmap* bmpMask = new CBitmap(); bmpImage->CreateCompatibleBitmap(pDC, bm.bmWidth, bm.bmHeight); bmpMask->CreateBitmap(bm.bmWidth, bm.bmHeight, 1, 1, NULL); CDC* SrcDC = new CDC(); CDC* DstDC = new CDC(); SrcDC->CreateCompatibleDC(pDC); DstDC->CreateCompatibleDC(pDC); CBitmap* pOldSrcBmp = SrcDC->SelectObject(bmpImage); CBitmap* pOldDstBmp = DstDC->SelectObject(bmpMask); img->Draw(SrcDC, rect, rect); COLORREF clrTopLeft = SrcDC->GetPixel(0, 0); COLORREF clrSaveBk = SrcDC->SetBkColor(clrTopLeft); DstDC->BitBlt(0, 0, bm.bmWidth, bm.bmHeight, SrcDC, 0, 0, SRCCOPY); COLORREF clrSaveDstText = SrcDC->SetTextColor(RGB(255, 255, 255)); SrcDC->SetBkColor(RGB(0, 0, 0)); SrcDC->BitBlt(0, 0, bm.bmWidth, bm.bmHeight, DstDC, 0, 0, SRCAND); pDC->BitBlt(0, 0, bm.bmWidth, bm.bmHeight, DstDC, 0, 0, SRCAND); pDC->BitBlt(0, 0, bm.bmWidth, bm.bmHeight, SrcDC, 0, 0, SRCPAINT); DstDC->SetTextColor(clrSaveDstText); SrcDC->SetBkColor(clrSaveBk); SrcDC->SelectObject(pOldSrcBmp); DstDC->SelectObject(pOldDstBmp); delete SrcDC; delete DstDC; }
Editor is loading...
Leave a Comment