|
EVC用TransparentBlt函数显示透明位图问题
[复制链接]
大家帮忙看一下,结果不是透明位图,错误在哪里?多谢!
void CPituceDlg::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: add draw code for native data here
CBitmap bj;
CBitmap shufa;
bj.LoadBitmap(IDB_BJ);
shufa.LoadBitmap(IDB_SHUFA);
BITMAP BT;
bj.GetBitmap(&BT);//获得bj位图信息
CDC memDC;
memDC.CreateCompatibleDC(&dc);
CBitmap* poldbitmap=memDC.SelectObject(&bj);
//先显示背景图
dc.BitBlt(0,0, BT.bmWidth,BT.bmHeight,&memDC,0,0,SRCCOPY);
shufa.GetBitmap(&BT);//获得shufa位图信息
memDC.SelectObject(&shufa); //选入前景图
//透明位图显示,将前景图画到pDC中,指定RGB(0,0,255)为透明掩码。即此//处只显示背景图,从前景图看起来这块好像透明一样。
TransparentBlt(dc.m_hDC,0,0, BT.bmWidth,BT.bmHeight, memDC.m_hDC,
0,0,BT.bmWidth,BT.bmHeight,RGB(0,0,255));
memDC.SelectObject(poldbitmap);
}
|
|