分类: 2.4 线程/图形学2010-04-30 22:14 1878人阅读 评论(0) 收藏 举报

这是一个绘制直线的简单绘图程序,能过实现动态轨迹画线,在拖动时产生临时线来表示可能画出的直线效果。

首先:建立一个单文档程序,名称为Demo
然后:在视图类的声明文件里面加入数据成员

class CDemoView : public CView
{
//········
protected:
    
    int m_Dragging;
    HCURSOR m_HCross;
    CPoint m_PointOld;
    CPoint m_PointOrigin;
//········
};

接着:在视图类的构造函数里面

CDemoView;
    m_HCross=AfxGetApp()->LoadStandardCursor(IDC_CROSS);//载入标准的十字光标
}

接着:为视图类添加鼠标左键,鼠标移动,鼠标左键释放消息

;
    RECT Rect;
    GetClientRect(&Rect);//取得窗口当前显示坐标
    ClientToScreen(&Rect);//转换为屏幕坐标
    ::ClipCursor(&Rect);//限定光标在指定矩形了吗
    CView::OnLButtonDown(nFlags, point);
}
void CDemoView::OnMouseMove(UINT nFlags, CPoint point) 
{
    // TODO: Add your message handler code here and/or call default
    ::SetCursor(m_HCross);
    if (m_Dragging)
    {
        CClientDC ClientDC(this);
        ClientDC.SetROP2(R2_NOT);//逆转当前屏幕颜色来画线的绘图方式
        ClientDC.MoveTo(m_PointOrigin);//
        ClientDC.LineTo(m_PointOld);   //擦去上一次的线
        ClientDC.MoveTo(m_PointOrigin);
        ClientDC.LineTo(point);//绘制这一次的临时线
        m_PointOld=point;
    }
    CView::OnMouseMove(nFlags, point);
}
;
        ::ReleaseCapture();//结束捕获鼠标
        ::ClipCursor(NULL);//解锁鼠标
        CClientDC ClientDC(this);
        ClientDC.SetROP2(R2_NOT);
        ClientDC.MoveTo(m_PointOrigin);
        ClientDC.LineTo(m_PointOld);//擦去上一次的临时线
        ClientDC.SetROP2(R2_COPYPEN);//缺省绘图模式,像素为画笔颜色
        ClientDC.MoveTo(m_PointOrigin);
        ClientDC.LineTo(point);//绘制固定线
    }
    CView::OnLButtonUp(nFlags, point);
}

VC动态轨迹画线的更多相关文章

  1. LIST动态表格画线(动态列)

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  2. OpenGL进阶演示样例1——动态画线(虚线、实线、颜色、速度等)

            用OpenGL动态绘制线段.事实上非常easy,但到如今为止.网上可參考资料并不多. 于是亲自己主动手写一个函数,方便动态绘制线段.代码例如以下: #include<GL/glu ...

  3. Android中Path类的lineTo方法和quadTo方法画线的区别

    转载:http://blog.csdn.net/stevenhu_223/article/details/9229337 当我们需要在屏幕上形成画线时,Path类的应用是必不可少的,而Path类的li ...

  4. C#使用 DirectX SDK 9做视频播放器 并在视频画线添加文字 VMR9

    视频图像处理系列 索引 VS2013下测试通过. 在百度中搜索关键字“DirectX SDk”,或者进入微软官网https://www.microsoft.com/en-us/download/det ...

  5. MFC画线功能总结

    本文仅用于学习交流,商业用途请支持正版!转载请注明:http://www.cnblogs.com/mxbs/p/6216464.html MFC画线功能要点有二:其一,鼠标按下时记录初始位置为线的起始 ...

  6. MFC消息映射机制以及画线功能实现

    ---此仅供用于学习交流,切勿用于商业用途,转载请注明http://www.cnblogs.com/mxbs/p/6213404.html. 利用VS2010创建一个单文档标准MFC工程,工程名为Dr ...

  7. CGContextRef 画线简单用法

    CGContextRef CGContextMoveToPoint(context,150,50);//圆弧的起始点 CGContextAddArcToPoint(context,100,80,130 ...

  8. iOS小画板画线总结

    一:基本画线: 使用贝赛尔曲线画: //创建路径 UIBezierPath* aPath = [UIBezierPath bezierPath]; //设置线宽 aPath.lineWidth = 5 ...

  9. [修复] Firemonkey 画线问题(Android & iOS 平台)

    问题:官方 QC 的一个 Firemonkey 移动平台画线问题: RSP-14309: [iOS & Android] Delphi 10.1 Berlin - drawing proble ...

随机推荐

  1. jQuery.form 中的 ajaxForm() 和 ajaxSubmit()

    官方例子  http://malsup.com/jquery/form/#ajaxForm官方API   http://malsup.com/jquery/form/#api中文API   http: ...

  2. WebService开发实例(Axis2实现,无需安装,快速实现)

    曾经做过的项目里涉及Android客户端向服务器发送请求,服务器访问数据库获得数据并返回给Android客户端.当时Android客户端与服务器的通信已经实现,我只负责客户端布局和数据呈现的部分,近日 ...

  3. 设置textarea文本域不能调整大小 resize

    CSS3中新增了resize缩放属性,这个属性可以应用到任意元素.目前只有Webkit内核的浏览器才支持这个css3属性,即Google chrome和Apple safari都支持.而textare ...

  4. 依赖于设备的位图(DDB) ,CreateCompatibleBitmap用法

    DDB(Device-dependent bitmap)依赖于具体设备,这主要体现在以下两个方面: DDB的颜色模式必需与输出设备相一致.例如,如果当前的显示设备是256色模式,那么DDB必然也是25 ...

  5. Android 5.0五大安全特性

    全盘加密(Full Disk Encryption, FDE) 对所有闪存数据加密.性能下降较大 Nexus 6,Nexus 9无法关闭FDE 对于其它设备.Google推荐开启 多用户支持 4.2中 ...

  6. as3声谱效果,有在线演示地址,能够播放本地音乐

    来源:潮汕IT男 简单的as3声谱效果,能够播放本地音乐. tag=as3" style="word-wrap:break-word; margin:0px; padding:0p ...

  7. C语言--union关键字(转载)

    union维护足够的空间来放置多个数据成员中的“一种”,而不是为每一个数据成员配置空间.在union中,所有的数据成员共用一个空间,同一时间只能存储其中一个数据成员,所有的数据成员具有相同的起始地址.

  8. ubuntu 安装python,easy_install和pip

    ubuntu12.04默认安装的python为 ms@ubuntums:~$ pythonPython 2.7.3 (default, Aug 1 2012, 05:16:07) 我需要用python ...

  9. HttpComponents 也就是以前的httpclient项目

    HttpComponents 也就是以前的httpclient项目,可以用来提供高效的.最新的.功能丰富的支持 HTTP 协议的客户端/服务器编程工具包,并且它支持 HTTP 协议最新的版本和建议.不 ...

  10. What’s New in Python 2.7 — Python 3.4.0b2 documentation

    What's New in Python 2.7 - Python 3.4.0b2 documentation What's New in Python 2.7¶