如何在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);
}
}
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.
[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.
If the function fails, the return value is FALSE.
Windows NT/2000/XP:
To get extended error
information, call GetLastError
.
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 TransparentBltfunction 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
.
相关文章推荐
- 如何在VC中显示透明背景位图
- VC对话框如何添加WM_ERASEBKGND消息(OnEraseBkgnd函数)及对话框使用位图背景并透明
- VC对话框如何添加WM_ERASEBKGND消息(OnEraseBkgnd函数)及对话框使用位图背景并透明
- VC对话框如何添加WM_ERASEBKGND消息(OnEraseBkgnd函数)及对话框使用位图背景并透明
- VC对话框如何添加WM_ERASEBKGND消息(OnEraseBkgnd函数)及对话框使用位图背景并透明
- VC 位图背景透明显示
- 最终--VC中MFC如何显示位图(拉伸以及非拉伸)
- VC对话框使用OnEraseBkgnd函数位图背景并透明
- 如何实现掩码位图的透明显示
- 如何让STATIC控件背景透明,只显示文字。其它控件也应该可以适用。
- MFC基于对话框如何添加位图并使位图背景透明(TransparentBlt函数)
- 如何实现掩码位图的透明显示
- 如何实现掩码位图的透明显示
- VC++实现位图显示透明效果--实现原理
- VC中设置了对话框背景图片的情况下不能正确显示radio控件透明
- VC对话框使用OnEraseBkgnd函数位图背景并透明
- VC++实现位图显示透明效果
- VC中如何显示一张位图
- VC++实现位图显示透明效果
- VC++实现位图显示透明效果