如何使用GDI绘制半透明矩形
2017-10-07 21:14
495 查看
[cpp] view plain copy
/*使用GDI绘制半透明矩形*/
void CDirectXDraw::DrawHalfOpacityRect(HDC hdc,CRect rect)
{
CDC dc;
dc.Attach(hdc);
CDC cdc;
cdc.CreateCompatibleDC( &dc );
CBitmap bitmap, *pOldBitmap;
bitmap.CreateCompatibleBitmap( &dc, rect.right, rect.bottom );
CRect src( rect );
src.OffsetRect( CSize( -rect.left, -rect.top ) );
pOldBitmap = cdc.SelectObject( &bitmap );
cdc.FillSolidRect( src, RGB( 0, 0, 0 ) ); //透明色
if( ::AlphaBlend == 0 )
{
dc.BitBlt( rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top, &cdc, src.left, src.top, SRCINVERT );
}else{
BLENDFUNCTION bf;
memset( &bf, 0, sizeof( bf ) );
bf.SourceConstantAlpha = 0x3f; //透明程度//值越大越不透明
bf.BlendOp = AC_SRC_OVER;
::AlphaBlend( dc.GetSafeHdc(), rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top,
cdc.GetSafeHdc( ), src.left, src.top, src.right - src.left, src.bottom - src.top, bf );
}
cdc.SelectObject( pOldBitmap );
dc.Detach();
}
http://blog.csdn.net/lee353086/article/details/38311421
/*使用GDI绘制半透明矩形*/
void CDirectXDraw::DrawHalfOpacityRect(HDC hdc,CRect rect)
{
CDC dc;
dc.Attach(hdc);
CDC cdc;
cdc.CreateCompatibleDC( &dc );
CBitmap bitmap, *pOldBitmap;
bitmap.CreateCompatibleBitmap( &dc, rect.right, rect.bottom );
CRect src( rect );
src.OffsetRect( CSize( -rect.left, -rect.top ) );
pOldBitmap = cdc.SelectObject( &bitmap );
cdc.FillSolidRect( src, RGB( 0, 0, 0 ) ); //透明色
if( ::AlphaBlend == 0 )
{
dc.BitBlt( rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top, &cdc, src.left, src.top, SRCINVERT );
}else{
BLENDFUNCTION bf;
memset( &bf, 0, sizeof( bf ) );
bf.SourceConstantAlpha = 0x3f; //透明程度//值越大越不透明
bf.BlendOp = AC_SRC_OVER;
::AlphaBlend( dc.GetSafeHdc(), rect.left, rect.top, rect.right - rect.left, rect.bottom - rect.top,
cdc.GetSafeHdc( ), src.left, src.top, src.right - src.left, src.bottom - src.top, bf );
}
cdc.SelectObject( pOldBitmap );
dc.Detach();
}
http://blog.csdn.net/lee353086/article/details/38311421
相关文章推荐
- 如何使用GDI绘制半透明矩形
- C#使用GDI绘制矩形的方法
- 如何使用CSS绘制一个响应式的矩形
- WINCE下如何使用DDRAW在GDI对话框中绘制动画
- MFC使用API函数GdiAlphaBlend绘制半透明控件
- Android 如何使用shape绘制只有一个圆角的矩形
- 使用GDI绘制矩形
- 使用GDI绘制矩形
- 一个图片加载与绘制类(使用GDI输出图片)【补充】
- 一个图片加载与绘制类(使用GDI输出图片)
- 【Bing Map学习系列】(6)——如何使用Bing Maps Silverlight Control绘制多边形
- 如何使用Core Text计算一段文本绘制在屏幕上之后的高度
- 使用View绘制矩形,多边形
- 如何使用Core Plot绘制直方图和折线图
- 使用GDI绘制点
- 使用GDI绘制简单曲线
- 使用CImage绘制半透明图片
- 如何用 GDI 绘制阴影文字 - 回复 "Splendour" 的问题
- 如何使用Win32下的GDI等接口实现绚丽、高效的界面
- (使用.Net)在绘制控件时如何消除闪烁现象