AlphaBlend与TransparentBlt能组合使用
在另一高手的指导下学会了用双兼容的方式组合着用AlphaBlend与TransparentBlt,但效果上达不到预期
的效果,我本来是想让一个图片的红色透明化,然后让这处理后的图片半透明化,但结果是本来该透明化
的红色变为黑色出现了,代码如下,求高手指导。
BLENDFUNCTION bl;
bl.BlendOp=AC_SRC_OVER;
bl.BlendFlags=0;
bl.AlphaFormat=0;
bl.SourceConstantAlpha=100;
CDC m_cdc2;
CDC *pwnd = GetDC();
CBitmap m_bitmap2;
m_cdc2.CreateCompatibleDC(pwnd);
m_bitmap2.LoadBitmap(IDB_TRUE4);
CBitmap *oldbitmap2 = m_cdc2.SelectObject(&m_bitmap2);
CDC mDC;
mDC.CreateCompatibleDC(&m_cdc2);
CBitmap m_bitmap;
m_bitmap.CreateCompatibleBitmap(&m_cdc2,150,150);
mDC.SelectObject(&m_bitmap);
TransparentBlt(mDC.m_hDC,0,0,150,150,m_cdc2.m_hDC,0,0,150,150,RGB(255,0,0));//=============
这个能使图片的一个颜色透明
AlphaBlend(pwnd->m_hDC,0,0,150,150,mDC.m_hDC,0,0,150,150,bl);//=============这个能使图半透明
m_cdc2.SelectObject(oldbitmap2);