如何绘制圆角矩形而不填充它(在MFC中)?

时间:2014-12-20 18:29:31

标签: windows mfc drawrectangle device-context

另外一个绘图问题MFC / GDI大师那里......: - )

我正在使用MFC,而且我正在使用CDC对象进行绘图。这很好。

但是现在我想绘制一个带圆角的矩形,这条线宽几个像素。但我不希望任何填充发生!有一种方法CDC :: RoundRect - 我只是设置了我想要的笔,并用这支笔得到一个漂亮的圆角矩形。但CDC :: RoundRect也用当前画笔填充矩形。

有没有办法画线,没有填充?我找不到任何其他方法?或者我可以创建某种" null刷"这不会改变矩形中间的内容吗?

我非常感谢你的一些好建议!

/来自瑞典的安德斯

1 个答案:

答案 0 :(得分:9)

在绘制圆角矩形之前,只需选择一个NULL画笔,如

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);