如题,下面的就是代码了,TransparentBlt能使图片一个色透明,而AlphaBlend能使整个图片半透明,但就是想不出怎么一起使用,还是,这方法是不可能实现的?最好高手们用一个图片做一个实例出来,嗯,这样比较容易明白吧。
CDC m_cdc;
CBitmap m_bitmap;
CDC *pwnd = GetDC();
BLENDFUNCTION bl;
bl.BlendOp=AC_SRC_OVER;
bl.BlendFlags=0;
bl.AlphaFormat=0;
bl.SourceConstantAlpha=0;
m_cdc.CreateCompatibleDC(pwnd);
CDC m_cdc2;
CBitmap m_bitmap2;
m_cdc2.CreateCompatibleDC(pwnd);
m_bitmap2.LoadBitmap(IDB_TRUE4);
CBitmap *oldbitmap2 = m_cdc2.SelectObject(&m_bitmap2);
//pwnd->BitBlt(0,0,150,150,&m_cdc2,0,0,SRCCOPY);
//TransparentBlt(pwnd->m_hDC,50,50,150,150,m_cdc2,0,0,150,150,RGB(255,0,0));//=============这个能使图片的一个颜色透明
AlphaBlend(pwnd->m_hDC,50,50,150,150,m_cdc2,0,0,150,150,bl);//=============这个能使图半透明
m_cdc2.SelectObject(oldbitmap2);
CDC m_cdc;
CBitmap m_bitmap;
CDC *pwnd = GetDC();
BLENDFUNCTION bl;
bl.BlendOp=AC_SRC_OVER;
bl.BlendFlags=0;
bl.AlphaFormat=0;
bl.SourceConstantAlpha=0;
m_cdc.CreateCompatibleDC(pwnd);
CDC m_cdc2;
CBitmap m_bitmap2;
m_cdc2.CreateCompatibleDC(pwnd);
m_bitmap2.LoadBitmap(IDB_TRUE4);
CBitmap *oldbitmap2 = m_cdc2.SelectObject(&m_bitmap2);
//pwnd->BitBlt(0,0,150,150,&m_cdc2,0,0,SRCCOPY);
//TransparentBlt(pwnd->m_hDC,50,50,150,150,m_cdc2,0,0,150,150,RGB(255,0,0));//=============这个能使图片的一个颜色透明
AlphaBlend(pwnd->m_hDC,50,50,150,150,m_cdc2,0,0,150,150,bl);//=============这个能使图半透明
m_cdc2.SelectObject(oldbitmap2);