VC++ 中绘图的问题

来源:百度知道 编辑:UC知道 时间:2024/09/21 22:20:05
Ellipse 绘制的圆形是白色的
怎样让它变成红色?
非常感谢!!

RGB(255,0,0)是纯红色。
将楼上的代码倒数第二句改为即可
m_brush.CreateSolidBrush(RGB(255,0,0));//圆的填充颜色

Ellipse 绘制的圆是没有填充颜色的
CRgn m_rgn;
CBrush m_brush;
m_rgn.CreateEllipticRgn(100,100,200,200);//圆的大小
m_brush.CreateSolidBrush(RGB(255,255,255));//圆的填充颜色
pDC->FillRgn(&m_rgn,&m_brush);//画圆

由于默认的线条颜色为黑色,默认的填充颜色为白色

CPen pen(PS_SOLID, 0, RGB(0, 0, 255));
CBrush brush(RGB(255, 0, 0));
pDC->SelectObject(&pen);
pDC->SelectObject(&brush);
pDC->Ellipse(&rc);

将会画出填充颜色为红色的蓝色椭圆形

FloodFill 填充封闭曲线

CBrush brush;
brush.CreateSolidBrush(RGB(255,0,0));
CPen pen;
pen.CreatePen(PS_SOLID,1,RGB(0,0,0));
CPen* pOldPen = dc.SelectObject(&pen);

//画一个圆
dc.CreateEllipticRgn(100,100,200,200);//圆的大小

//填充一个圆
CBrush* pOldBrush = dc.SelectObject(&brush);
dc.FloodFill(125,125,RGB(0,0,0));

//注意 RGB(0,0,0)为圆边界颜色, 125,125为圆中任意一个点.
//此函数效率比较低,不建议大面积