3

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

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

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

有没有办法只画线,不填充?还有什么我没找到的方法吗?或者我可以创建某种不会改变矩形中间的“空笔刷”吗?

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

/来自瑞典的安德斯

4

1 回答 1

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);
于 2014-12-21T08:54:48.850 回答