zoukankan      html  css  js  c++  java
  • 直线的“橡皮筋”画法

    微软的画图程序中画直线时,会有画线提示,形象的说就像“橡皮筋”一样,在未最终确定直线的长度和角度前都会有一根类似“橡皮筋”的直线,便于客户可以方便的画出理想的直线,具体实现方法如下:

    void CDrawView::OnLButtonDown(UINT nFlags, CPoint point)
    {
     m_bDraw = true;
     m_ptOrigin = point;
     m_ptEnd = point;
     CView::OnLButtonDown(nFlags, point);
    }

    void CDrawView::OnMouseMove(UINT nFlags, CPoint point)
    {
     if(m_bDraw)
     {
      CClientDC dc(this);
      dc.SetROP2(R2_NOT);     //1
      dc.MoveTo(m_ptOrigin);  //2
      dc.LineTo(m_ptEnd);    //3
      m_ptEnd = point;
      dc.MoveTo(m_ptOrigin);
      dc.LineTo(m_ptEnd);
     }
     CView::OnMouseMove(nFlags, point);
    }

    具体原理是,m_ptOrigin为起始坐标点,m_ptEnd不断的记录终端坐标点,这里假定客户区是白色的,在鼠标移动时,1句是将绘图的模式设成像素色为屏幕颜色的反色,注意这时的m_ptEnd为上一次的鼠标移动的终点,上次那条线颜色为黑色,通过1、2、3句将上次的那条线的像素色黑色变成白色和客户区颜色相同,后面三句才最终画出在现在这个坐标终点下的黑色直线。不断往复。(其实这个方法虽然很普遍,但是很不实用)

  • 相关阅读:
    基数排序
    定时任务
    线程池的创建
    SharePoint 客户端对象模型 多选查阅项赋值
    Sharepoint Rest 根据user获取UserId
    SHAREPOINT
    plupload 实例
    JS 在web页面中调用本地应用程序
    Jquery ajax上传文件到服务器
    sharepoint 人员选择控件使用
  • 原文地址:https://www.cnblogs.com/lidabo/p/3492193.html
Copyright © 2011-2022 走看看