如何用MFC中的半透明画笔填充矩形区域?

时间:2014-03-18 12:22:44

标签: visual-c++ mfc device-context

我需要用mfc中的半透明颜色/画笔填充矩形区域。我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:2)

您无法使用半透明笔刷填充矩形,您需要使用AlphaBlendTransparentBlt之类的内容来创建效果。

这里有一个例子:

http://www.codeproject.com/Articles/286/Using-the-AlphaBlend-function

答案 1 :(得分:0)

我找到了解决方案。要使用半透明画笔填充矩形区域,我们需要使用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());
}