2个回答
展开全部
void CDrawELDlg::OnPaint()
{
CPaintDC dc(this); // device context for painting
//Drawing()是自定义函数
Drawing(&dc,500,500,100,RGB(255,0,0));//画红色的半径100的圆
Drawing(&dc,300,500,100,RGB(0,255,0)); //画绿色的圆
//从第一个圆中心到第二个圆中心画一条直线
dc.MoveTo(500,500);
dc.LineTo(300,500);
//画一个蓝色的半径100的圆
Drawing(&dc,200,200,100,RGB(0,0,255));
//从第二个圆心到第3个圆心画一直线
dc.MoveTo(300,500);
dc.LineTo(200,200);
}
//画不同颜色圆的自定义函数,参数说明
// dc指针DC
//圆心坐标x和y
//r是圆的半径
//color是颜色参数
BOOL CDrawELDlg::Drawing(CDC* dc, int x, int y, UINT r,COLORREF color )
{
POINT s,e;
CBrush br(color);//定义笔刷
CBrush* pbr=dc->SelectObject(&br);//将笔刷选入画布,并保存原来的笔刷
s.x=x-r/2;
s.y=y-r/2;
e.x=x+r/2;
e.y=y+r/2;
dc->Ellipse(s.x,s.y,e.x,e.y); //画圆
dc->SelectObject(pbr); //恢复上次笔刷
return TRUE;
}
这里的Drawing(CDC* dc, int x, int y, UINT r,COLORREF color )是我自定义的函数,可能带入不颜色
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询