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

Ugl*_*ede 3 windows mfc drawrectangle device-context

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

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

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

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

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

/来自瑞典的安德斯

Edw*_*nts 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);
Run Code Online (Sandbox Code Playgroud)