通过LoalBitmap ()来实现BMP文件的放置

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

//调用函数

CRect re;

m_glob.GetClientRect(re);

DrawTransparentBitmap(m_glob.GetDC(),IDB_BITMAP1,re,RGB(0,0,0));

//绘制函数

/*

这是一个用来画透明位图的函数

CDC *pDC 需要画位图的CDC指针

UINT IDImage 位图资源ID

CRect &rect 指定位图在pDC中的位置

COLORREF rgbMask 位图的透明色

*/

void DrawTransparentBitmap(CDC *pDC, UINT IDImage,CRect &rect, COLORREF rgbMask)

{

CDC ImageDC,MaskDC;

CBitmap Image,*pOldImage;

CBitmap maskBitmap,*pOldMaskDCBitmap ;

Image.LoadBitmap(IDImage);

ImageDC.CreateCompatibleDC(pDC);

pOldImage=ImageDC.SelectObject(&Image);

MaskDC.CreateCompatibleDC(pDC);

maskBitmap.CreateBitmap( rect.Width(), rect.Height(), 1, 1, NULL );

pOldMaskDCBitmap = MaskDC.SelectObject( &maskBitmap );

ImageDC.SetBkColor(rgbMask);

MaskDC.BitBlt( 0, 0, rect.Width(), rect.Height(), &ImageDC, 0, 0, SRCCOPY );

ImageDC.SetBkColor(RGB(0,0,0));

ImageDC.SetTextColor(RGB(255,255,255));

ImageDC.BitBlt(0, 0, rect.Width(), rect.Height(), &MaskDC, 0, 0, SRCAND);

pDC->BitBlt(rect.left,rect.top,rect.Width(), rect.Height(), &MaskDC, 0, 0, SRCAND);

pDC->BitBlt(rect.left,rect.top,rect.Width(), rect.Height(), &ImageDC, 0, 0,SRCPAINT);

MaskDC.SelectObject(pOldMaskDCBitmap);

ImageDC.SelectObject(pOldImage);

}

可以自由更改.....

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航