使用MFC画线(初学)

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

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

在这里插入图片描述
则有
在这里插入图片描述
2.画线

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

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

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

如何表示:CPoint

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

然后在down上用自定义成员保存第一个点(起点)
在这里插入图片描述
而画画需要在平板或平纸上画,在Windows设备里也需要画布

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

MoveTo():移动到什么位置,起点已经保存在括号里
紧接着这个函数
LineTo():画的线
在这里插入图片描述

执行后,效果是:当你的鼠标左键按下时开始滑动一直不放,直到鼠标抬起,从鼠标按下的点到抬起的点会有一条默认的黑色细线。效果如下:在这里插入图片描述

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

  • 17
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值