您的位置:首页 > 其它

如何在VC中显示透明背景位图

2010-08-27 22:26 495 查看
简单的调用系统API。

Windows NT/2000/XP:
Included in Windows 2000 and later.

Windows 95/98/Me:
Included in Windows 98 and later.

Header:
Declared in Wingdi.h; include Windows.h.

Library:
Use Msimg32.lib.

void CTransparentBltTestDlg::OnPaint()

{

CPaintDC dc(this); // device context for painting

CDialog::OnPaint();

COLORREF crMask = RGB(0x00,0x00,0xff); // Mask color of bitmap

BITMAP bm;

m_bmp.GetBitmap(&bm);

int nWidth = bm.bmWidth;

int nHeight = bm.bmHeight;

CDC ImageDC;

ImageDC.CreateCompatibleDC(&dc);

CBitmap *pOldImageBMP = ImageDC.SelectObject(&m_bmp);

::TransparentBlt(dc.m_hDC,50,40,nWidth,nHeight,ImageDC.m_hDC,0,0,nWidth,nHeight,crMask);

ImageDC.SelectObject(pOldImageBMP);

}

}


TransparentBlt

The TransparentBlt
function performs a bit-block
transfer of the color data corresponding to a rectangle of pixels from
the specified source device context into a destination device context.

BOOL TransparentBlt(

HDC

hdcDest

,

// handle to destination DC

  int

nXOriginDest

,

// x-coord of destination upper-left corner

  int

nYOriginDest

,

// y-coord of destination upper-left corner

  int

nWidthDest

,

// width of destination rectangle

  int

hHeightDest

,

// height of destination rectangle

  HDC

hdcSrc

,

// handle to source DC

  int

nXOriginSrc

,

// x-coord of source upper-left corner

  int

nYOriginSrc

,

// y-coord of source upper-left corner

  int

nWidthSrc

,

// width of source rectangle

  int

nHeightSrc

,

// height of source rectangle

  UINT

crTransparent

// color to make transparent

);

Parameters

hdcDest

[in] Handle to the destination device
context.
nXOriginDest

[in] Specifies the
x-coordinate, in logical units, of the upper-left corner of the
destination rectangle.
nYOriginDest

[in]
Specifies the y-coordinate, in logical units, of the upper-left corner
of the destination rectangle.
nWidthDest

[in]
Specifies the width, in logical units, of the destination rectangle.
hHeightDest

[in] Handle to the height, in logical units, of the
destination rectangle.
hdcSrc

[in] Handle
to the source device context.
nXOriginSrc

[in]
Specifies the x-coordinate, in logical units, of the source rectangle.

nYOriginSrc

[in] Specifies
the y-coordinate, in logical units, of the source rectangle.
nWidthSrc

[in] Specifies the width, in logical units, of the source
rectangle.
nHeightSrc

[in] Specifies the
height, in logical units, of the source rectangle.
crTransparent

[in] The RGB color in the source bitmap to treat as
transparent.

Return Values

If the function succeeds, the return value is TRUE.

If the function fails, the return value is FALSE.

Windows NT/2000/XP:
To get extended error
information, call GetLastError
.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: