【发布时间】:2014-04-24 03:04:55
【问题描述】:
我需要在 mfc 中用半透明颜色/画笔填充一个矩形区域。我怎样才能做到这一点?
【问题讨论】:
标签: visual-c++ mfc gdi
我需要在 mfc 中用半透明颜色/画笔填充一个矩形区域。我怎样才能做到这一点?
【问题讨论】:
标签: visual-c++ mfc gdi
您不能只用半透明画笔填充矩形,您需要使用AlphaBlend 或TransparentBlt 之类的东西来创建效果。
这里有一个例子:
http://www.codeproject.com/Articles/286/Using-the-AlphaBlend-function
【讨论】:
我找到了解决方案。要用半透明画笔填充矩形区域,我们需要使用GdiPlus对象。
这里是示例代码:
void FillSemiTransparentRegion(CDC *pDC, CRect rc)
{
if (pDC == NULL || rc.IsRectEmpty() || rc.IsRectNull())
return;
Graphics gr(pDC->GetSafeHdc());
SolidBrush br(Color(100, 0, 0, 0)); // Alpha, Red, Blue, Green
gr.FillRectangle(&br, rc.left, rc.right, rc.Width(), rc.Height());
}
【讨论】: