C++ 绘圆,填充色无效?
新城 2011-09-11 03:15:24 以下是函数代码,VC++ MFC多文档界面,用这个函数绘出的圆形不能显示填充的画刷的颜色,不知道为什么
只有宽度为2的空心圆,中间蓝色画刷填的部分不显示
void CMFCSketcherView::OnDraw(CDC* pDC)
{
CMFCSketcherDoc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc)
return;
// 使用画笔
CPen aPen;
aPen.CreatePen(PS_SOLID,2,RGB(255,0,0)); // 实线,宽度为 2,红色
CPen* pOldPen = pDC ->SelectObject(&aPen);
// 使用画刷
CBrush aBrush(RGB(0,0,255)); // 可以在定义时初始化
CBrush* pOldbrush = pDC ->SelectObject(&aBrush);
// 绘圆或弧
CRect* pRect = new CRect(150,50,300,200); // 矩形类,上下左右四个距离
CPoint Start(275,100); // 定义起点
CPoint End(275,100); // 定义止点
pDC ->Arc(pRect,Start,End); // 绘制
delete pRect;
// 画笔复原
pDC ->SelectObject(&pOldPen);
// 恢复画刷
pDC ->SelectObject(pOldbrush);
}