如何在MFC中绘制未填充的圆角矩形?

3

你好,MFC/GDI高手们,我有一个绘图问题要请教你们... :-)

我正在使用MFC,并使用CDC对象进行一些绘图。这很好用。

但现在我想绘制一个带有圆角的矩形,线条宽度为几个像素。但我不希望发生填充!CDC::RoundRect有一个方法-我只需设置所需的笔,就可以使用该笔绘制出漂亮的带圆角的矩形。但是CDC::RoundRect也会使用当前画刷填充矩形。

有没有办法只绘制线条,不填充?是否还有其他我没有找到的方法?或者我可以创建一种“空画刷”,不改变矩形中间的内容吗?

非常感谢您给出的良好建议!

/来自瑞典的Anders

1个回答

9

在绘制圆角矩形之前,只需选择一个NULL brush,如下所示:

CPen pen;
CBrush* pOldBrush;
CPen* pOldPen;
if (!pen.CreatePenIndirect(&m_logpen))
    return;
pOldBrush = (CBrush*)pDC->SelectStockObject(NULL_BRUSH);
pOldPen = pDC->SelectObject(&pen);
pDC->RoundRect(m_rect, m_roundness);
pDC->SelectObject(pOldBrush);
pDC->SelectObject(pOldPen);

啊 - 原来有一个NULL_BRUSH。我们一直在找它,但没有找到。谢谢! :-) - UglySwede

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接