VC动态轨迹画线

这是一个绘制直线的简单绘图程序,能过实现动态轨迹画线,在拖动时产生临时线来表示可能画出的直线效果。
首先:建立一个单文档程序,名称为Demo
然后:在视图类的声明文件里面加入数据成员
{
//········
protected:
int m_Dragging;
HCURSOR m_HCross;
CPoint m_PointOld;
CPoint m_PointOrigin;
//········
};
接着:在视图类的构造函数里面
m_HCross=AfxGetApp()->LoadStandardCursor(IDC_CROSS);//载入标准的十字光标
}
接着:为视图类添加鼠标左键,鼠标移动,鼠标左键释放消息
RECT Rect;
GetClientRect(&Rect);//取得窗口当前显示坐标
ClientToScreen(&Rect);//转换为屏幕坐标
::ClipCursor(&Rect);//限定光标在指定矩形了吗
CView::OnLButtonDown(nFlags, 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动态轨迹画线的更多相关文章
- LIST动态表格画线(动态列)
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- OpenGL进阶演示样例1——动态画线(虚线、实线、颜色、速度等)
用OpenGL动态绘制线段.事实上非常easy,但到如今为止.网上可參考资料并不多. 于是亲自己主动手写一个函数,方便动态绘制线段.代码例如以下: #include<GL/glu ...
- Android中Path类的lineTo方法和quadTo方法画线的区别
转载:http://blog.csdn.net/stevenhu_223/article/details/9229337 当我们需要在屏幕上形成画线时,Path类的应用是必不可少的,而Path类的li ...
- C#使用 DirectX SDK 9做视频播放器 并在视频画线添加文字 VMR9
视频图像处理系列 索引 VS2013下测试通过. 在百度中搜索关键字“DirectX SDk”,或者进入微软官网https://www.microsoft.com/en-us/download/det ...
- MFC画线功能总结
本文仅用于学习交流,商业用途请支持正版!转载请注明:http://www.cnblogs.com/mxbs/p/6216464.html MFC画线功能要点有二:其一,鼠标按下时记录初始位置为线的起始 ...
- MFC消息映射机制以及画线功能实现
---此仅供用于学习交流,切勿用于商业用途,转载请注明http://www.cnblogs.com/mxbs/p/6213404.html. 利用VS2010创建一个单文档标准MFC工程,工程名为Dr ...
- CGContextRef 画线简单用法
CGContextRef CGContextMoveToPoint(context,150,50);//圆弧的起始点 CGContextAddArcToPoint(context,100,80,130 ...
- iOS小画板画线总结
一:基本画线: 使用贝赛尔曲线画: //创建路径 UIBezierPath* aPath = [UIBezierPath bezierPath]; //设置线宽 aPath.lineWidth = 5 ...
- [修复] Firemonkey 画线问题(Android & iOS 平台)
问题:官方 QC 的一个 Firemonkey 移动平台画线问题: RSP-14309: [iOS & Android] Delphi 10.1 Berlin - drawing proble ...
随机推荐
- CSS3 transform制作的漂亮的滚动式导航
模拟这个做的 不过实现的没有别人那么好 http://www.creativetier.com/products/modern-menu-3/vertical.html 关于transform 看这 ...
- struts ModelDriven
在表单提交的时候传值是这样,name=admin.username name=admin.password,然后在action中定义属性admin生成get和set 也可以实现ModelDriven这 ...
- 转:STL容器里存放对象还是指针
一.问题的引出: 容器可以存放对象,可以存放指针,这里要谈的是两者的使用问题.就是什么时候存放对象更好,什么时候存放指针更好? 二.问题的分析过程: 1. 首先说下stl容器的工作方式 对于内建类 ...
- 链接分析算法之:主题敏感PageRank
链接分析算法之:主题敏感PageRank 前面的讨论提到.PageRank忽略了主题相关性,导致结果的相关性和主题性降低,对于不同的用户,甚至有很大的差别.例如,当搜索“苹果”时,一个数码爱好 ...
- Oracle 11g RAC 环境下单实例非缺省监听及端口配置
如果在Oracle 11g RAC环境下使用dbca创建单实例数据库后,Oracle会自动将其注册到缺省的1521端口及监听器.大多数情况下我们使用的为非缺省监听器以及非缺省的监听端口.而且在Orac ...
- H264解码的一个測试程序
网上看到的一个H264视频格式的解码測试程序,能够用来參考其逻辑流程. 代码例如以下: Test_Display_H264(){ in_fd = open(H264_INPUT_FILE, ...
- DicomIoException: Requested 132 bytes past end of fixed length stream.
今天在用DicomFile.Open(Stream s)这个接口时,遇到一个异常: DicomIoException: Requested 132 bytes past end of fix ...
- JVM 指令集合
指令码 助记符 说明 0x00 nop 什么都不做 0x01 aconst_null 将null推送至栈顶 0x02 iconst_m1 将int型-1推送至栈顶 0x03 iconst_0 将int ...
- 生成pdf文件
- 用QT创建WINDOWS服务程序
恩, qtservice挺好的http://www.qtsoftware.com/products/appdev/add-on-products/catalog/4/Utilities/qtservi ...