使用AlphaBlend绘制透明度可调位图

//Transparence 0-100 #pragma comment(lib, "msimg32.lib") void TranspareDraw(CDC *pDC, LPRECT lpRect, int Transparence) { CDC memDC; memDC.CreateCompatibleDC(pDC); CBitmap bitMap; bitMap.LoadBitmap(IDB_BITMAP1); BITMAP bm; bitMap.GetBitmap(&bm); CBitmap *pOldBitmap = memDC.SelectObject(&bitMap); BLENDFUNCTION bf ={0}; bf.BlendOp = AC_SRC_OVER; bf.SourceConstantAlpha = (BYTE)(255*Transparence/100); AlphaBlend(pDC->m_hDC, lpRect->left, lpRect->top, lpRect->right - lpRect->left, lpRect->bottom - lpRect->top, memDC.m_hDC, 0,0, bm.bmWidth, bm.bmHeight, bf); memDC.SelectObject(pOldBitmap); bitMap.DeleteObject(); memDC.DeleteDC(); }

你可能感兴趣的:(使用AlphaBlend绘制透明度可调位图)