首页 IP地址查询 | Alexa排名查询 | 手机归属地查询
设为首页 收藏本站
  • 网络编程网络编程
  • 软件编程软件编程
  • 数据库技术数据库技术
  • 编程学院
  • 业界资讯 业界资讯
  • 源码中心源码中心
  • 会员中心会员中心
  • 页面导航: 首页MFC编程图形图象 → vc如何画圆,并填充颜色

    vc如何画圆,并填充颜色

    发布:zmailj 发布日期:2009-02-25 字体:[增加 减小] 类型:原创
    google一下,baidu了一下,还没有什么好的方法,真是沮丧啊!

       首先是画圆,好多人说没有画圆的函数吧,其实圆不就是椭圆的一个特例吗?这个明白了吧。OK,下面说具体实现方法。

       第一种实现方法是先画圆,然后调用FillRgn()函数来实现,但是这样就需要自己去构造这个CRgn区域,我开始也是这么做的,但是不知道为什么就是有错误。现象是画完之后弹错误,程序退出。代码如下:

    CClientDC dc(this);
    CPen pen(PS_SOLID,m_nLinewidth,m_ncolor);
    dc.SelectObject(&pen);
    CBrush *pBrush=new CBrush(m_ncolor);
    dc.Ellipse(point.x-5,point.y-5,point.x+5,point.y+5);
      
    CRgn *hrgn;
       hrgn=(CRgn*)CreateEllipticRgn(point.x-5,point.y-5,point.x+5,point.y+5);
       dc.FillRgn(hrgn,pBrush);

       貌似可以。就是有错误了啊!

    第二种方法是对第一种方法的改进,说是改进还不如说是换了个函数。画完圆之后,调用刷子

    函数来填充颜色,成功。代码如下:

    CClientDC dc(this);
    CPen pen(PS_SOLID,m_nLinewidth,m_ncolor);
    dc.SelectObject(&pen);
    CBrush *pBrush=new CBrush(m_ncolor);
    dc.SelectObject(pBrush);

    dc.Ellipse(point.x-5,point.y-5,point.x+5,point.y+5);


    哈哈。可以尝试一下。我的是在Leftbuttondown中实现的。

     


    Tags: Ellipse 画圆
    为配合网络严查,文章评论将关闭敬请谅解.
    同 类 文 章
    最 近 更 新
    热 点 排 行