2-画线
画线
首先在View增加消息OnLButtonDown和OnLButtonUp
1.在View类中添加点成员用于保存鼠标按下和松开接收到的Point参数
//View类中 |
2.ScreenPoint和ClientPoint
-
ScreenPoint:屏幕坐标,代表整个屏幕的坐标值
-
ClientPoint:用户坐标,代表当前窗口的坐标值
3.注意消息传递
除了View不需要继续往下传递消息,其它都需要继续往下传递消息。
4.获取设备上下文
CDC* pDC = GetDC(); //获取设备上下文 |
设备上下文是指当前窗口的各种参数,并用一个指针指向这些参数
5.画线
pDC->MoveTo(m_start); |
6.释放上下文
用完上下文一定要释放,让其它使用者也能获取到。
ReleaseDC(pDC); |
7.绘制过程不能显示的问题解决
7.1增加成员绘制状态
BOOL m_status; //绘制状态 |
7.2增加鼠标移动消息
OnMouseMove消息
7.3在鼠标移动过程中更新中间点
if (m_status) |
7.4将绘制过程放到OnDraw函数中
OnDraw每次需要重绘都会被调用,因此将绘制放到OnDraw中,即使窗口被放大缩小,线条不会消失而是重绘。
if (m_status) |
8.绘制多条线
用一个列表存储以往线条,再在OnDraw里绘制列表中所有的线即可。
发布于