1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| void CtransparentDlg::DrawDIG(CDC *dc,int x,int y,void *sample)
{
PDIG dh=(PDIG)sample;
CDC globaldcmem;
HBITMAP hBmpGlobal=CreateBitmap(32,32,1,32,NULL);
globaldcmem.CreateCompatibleDC(dc);
SelectObject(globaldcmem.m_hDC,hBmpGlobal);
CDC dcmem;
dcmem.CreateCompatibleDC(dc);
dcmem.SetBkColor(0);
dcmem.SetBkMode( TRANSPARENT );
SelectObject(dcmem.m_hDC,dh->hBmpBlend);
globaldcmem.BitBlt(0,0,32,32,&dcmem,0,0,SRCINVERT);
dcmem.SetBkColor(0);
dcmem.SetBkMode( TRANSPARENT );
//dc->dcmemSetBkColor(0);
SelectObject(dcmem.m_hDC,dh->hBmp);
globaldcmem.BitBlt(0,0,32,32,&dcmem,0,0,SRCPAINT);
dcmem.DeleteDC();
globaldcmem.SetBkColor(0);
globaldcmem.SetBkMode( TRANSPARENT );
dc->BitBlt(x,y,32,32,&globaldcmem,0,0,SRCCOPY);
DeleteObject(hBmpGlobal);
globaldcmem.DeleteDC();
} |
Partager