VC++开发GIS系统(27)设置点的填充颜色

之前的教程我介绍了使用CPEN设置画笔的宽度颜色线型,并且使用设置宽度大于1的虚线边框, 在本文中将介绍怎样设置点的填充颜色,使用的是画刷(CBrush)这个类。

使用CBrush的效果图

示例代码

void CMalaGISView::OnLButtonDown(UINT nFlags, CPoint point)
{
    // TODO:  在此添加消息处理程序代码和/或调用默认值
    if (curMod == "drawpoint")
    {
        CClientDC dc(this);
        
        //画方形的点
        LOGBRUSH log;
        log.lbColor = 0;
        log.lbStyle = BS_SOLID;
        CPen pen(PS_GEOMETRIC | PS_DASH, 5, &log);
        CPen *oldPen = dc.SelectObject(&pen);
        CBrush MyBrush(RGB(0,255,0));//新建画刷
        CBrush* OldBrush = dc.SelectObject(&MyBrush);//选择新画刷同时保存老画刷

        dc.Rectangle(CRect(CPoint(point.x - 20, point.y - 20), CPoint(point.x + 20, point.y + 20)));//画图
        dc.SelectObject(oldPen);
        dc.SelectObject(OldBrush);//恢复老画刷
        MyBrush.DeleteObject();//删除画刷
        pen.DeleteObject();

    }
    CView::OnLButtonDown(nFlags, point);
}

CBrush的简单使用介绍

CBrush的使用的CPen有着相似之处,具体如下:

新建画刷--选中新建的画刷,同时保存老画刷--画图--恢复老画刷--删除新建的画刷。

VC++开发GIS系统(26)关于LOGBRUSH结构体 VC++开发GIS系统(28)关于VC++的CBrush类

作者:,GIS爱好者。
分享本文,请您带上本文链接
分享到:

发表评论