使用MFC画线(初学)

使用MFC在单文档上划线(初学)

MFC的画线
在Visual Studio 2019中新建MFC应用,选单个文档,去掉所有高级功能后创建
直接执行,则有
使用MFC画线(初学)
1.鼠标按下响应
(1)在类向导中
使用MFC画线(初学)
(2)代码中,在自增代码里添加语句
使用MFC画线(初学)
(3)执行代码
使用MFC画线(初学)

使用MFC画线(初学)
则有
使用MFC画线(初学)
2.画线

表示点(屏幕坐标点)
在MFC中有一个类表示在(CPoint),CPoint类中有x和y坐标,这两个值就是表示屏幕上的坐标,x和y坐标与电脑屏幕分辨率有关,当鼠标点击时,windows会自动捕捉坐标并放到CPoint类里,CPoint类操作系统已经帮我们做好了,我们只需要拿到这个值给他去接下来的操作就行了
(如何看类:按住Ctrl用鼠标点击它,就能进入mfc所定义的位置)
如下类所定义的
使用MFC画线(初学)

如何画线
两点之间有一条线,将起点保存下来,在终点时我们就可以做一些操作了。

如何捕捉两点鼠标按下:起点;鼠标抬起:终点

如何表示:CPoint

如何保存起点
在类里添加成员变量(可以手动鼠标添加,推荐使用类向导)。还是在view里添加成员变量,然后选添加“自定义变量”,变量名取有意义的。
使用MFC画线(初学)
如果上图访问项选的是受保护则有如下所示
使用MFC画线(初学)

然后在down上用自定义成员保存第一个点(起点)
使用MFC画线(初学)
而画画需要在平板或平纸上画,在Windows设备里也需要画布

设备上下文(Device Content,DC)
(屏幕,打印机,抽象的。
只要得到这个上下文就可以画点画线画抽象的,与底下是什么设备没有关系,这是操作系统提供给我们的功能)
画布
HDC hdc=::GetDC(m_Hwnd)
CDC cdc=getDC()
CClientDC dc(this)
使用MFC画线(初学)
一般“获取设备上下文”和“释放设备上下文”是成对使用的
就是说每次画线、画点之前先获得这个设备上下文,用完之后一定要记得释放,养成一个比较好的习惯。如果不释放有可能会造成资源被占用、内存泄漏什么的。

MoveTo():移动到什么位置,起点已经保存在括号里
紧接着这个函数
LineTo():画的线
使用MFC画线(初学)

执行后,效果是:当你的鼠标左键按下时开始滑动一直不放,直到鼠标抬起,从鼠标按下的点到抬起的点会有一条默认的黑色细线。效果如下:使用MFC画线(初学)

总结:
这是主要讲基于单文档类型的应用程序,在屏幕上如何绘制一条线,是借助于设备上下文(设备上下文(Device Content,DC) ),还有事件的组合(鼠标的按下和抬起),时间逻辑放在那个里面。
还是比较简单的,只是和vc比起来操作繁多,总会忘点什么,或者就不操作也会忘。