注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Mihooke's blog

IT之恋

 
 
 

日志

 
 

MFC画笔画刷简单使用  

2016-06-10 17:47:13|  分类: MFC |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

画线步骤:获取鼠标按下的消息->
                取得当前的点->
                在DC上获取DC->
                MoveTo到当前的点->
                LineTo到鼠标松开的点
  /*CDC画线*/
    CDC *hDC;
    hDC = GetDC();
    hDC->MoveTo(m_cpoint);
    hDC->LineTo(point);
    ReleaseDC(hDC);
    /*CClientDC画线*/
    CClientDC ccDC(this);
    ccDC.MoveTo(m_cpoint);
    ccDC.LineTo(point);
   /*CWindowDC画线*/
    CWindowDC cwDC(this);
    cwDC.MoveTo(m_cpoint);
    cwDC.LineTo(point);
    /*画笔画线*/
    CPen cpens(PS_SOLID, 10, RGB(100, 100, 0));
    CClientDC ccDC(this);
    CPen *pOldPen = ccDC.SelectObject(&cpens);
    ccDC.MoveTo(m_cpoint);
    ccDC.LineTo(point);
    ccDC.SelectObject(pOldPen);
    /*画刷画矩形*/
    CBrush brush(RGB(255, 0, 0));
    CClientDC ccDC(this);
    ccDC.FillRect(CRect(m_cpoint, point), &brush);
    /*画刷加载位图*/
    CBitmap bitmap;
    bitmap.LoadBitmap(IDB_BITMAP1);
    CBrush brush(&bitmap);
    CClientDC ccDC(this);
    ccDC.FillRect(CRect(m_cpoint, point), &brush);

    /*画矩形,画多个矩形是压叠的*/

    CClientDC ccDC(this);
    ccDC.Rectangle(m_cpoint.x, m_cpoint.y, point.x, point.y);
    /*矩形不压叠的*/
    CClientDC ccDC(this);
    CBrush *brush = CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));
    CBrush *pOldBrush = ccDC.SelectObject(brush);
    ccDC.Rectangle(CRect(m_cpoint, point));
    ccDC.SelectObject(pOldBrush);
    /*画连续的线,步骤:WM_MOUSEMOVE消息,如果鼠标按下画线,画完新开始的点为旧的点,循环*/

    CClientDC ccDC(this);
    if(true == m_bIsLButtonDwon)
    {
        ccDC.MoveTo(m_cpoint);
        ccDC.LineTo(point);
        m_cpoint = point;
    }
  评论这张
 
阅读(12)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017