MFC学习 -- 画线,画圆,文本输出

本文介绍了如何使用MFC进行图形绘制,包括创建直线、矩形、圆和椭圆,并讲解了画刷操作及文本内容的输出方法。通过MFC应用,利用鼠标事件监听实现动态画线,使用Rectangle函数绘制矩形,利用透明画刷处理重叠问题,以及通过CFont设置字体和颜色进行文本输出。
摘要由CSDN通过智能技术生成

创建一个MFC项目

在这里插入图片描述
如上图,点击MFC应用来即可创建MFC项目,之后点击下一步:
在这里插入图片描述
最终点击创建即可创建一个MFC项目,之后我们可以对该项目的相关属性进行配置,具体如下图:
在这里插入图片描述
此处将程序类型切换为单个文档以及项目样式切换为MFC standard模式。
在这里插入图片描述
之后将高级功能全部取消即可完成创建MFC项目。

使用MFC绘画一条直线

首先此处我们想要达到的效果是当我们按下鼠标的时候就开始进行画线,一直画到抬起鼠标结束,所以我们需要为这两个操作完成相应函数,具体如下图:
在这里插入图片描述
此处我们在消息中选择如上图所示的选项,该选项就是为我们鼠标左键按下这一操作编写对应的函数程序,此处我们是在鼠标按下的时候开始的,所以我们要记住鼠标左键按下时所在的坐标这里我们就要添加一个成员变量m_pOrigin来记录起始位置,它的类型为CPoint类型,具体操作如下图:
在这里插入图片描述
下面我们在按下鼠标左键的时候记录下初始坐标。
在这里插入图片描述
之后我们按照上面相同的步骤创建一个右键操作的函数如下图:
在这里插入图片描述
之后在左键抬起的时候我们即可画线了,具体函数体如下图:
在这里插入图片描述
此时运行代码即可完成下面的画线操作:
在这里插入图片描述

使用MFC绘画一个矩形以及MFC的画刷操作

在MFC中存在一个函数为Rectangle函数,通过该函数我们就可以智能构造任意矩形了,具体代码如下:
在这里插入图片描述
接下来我们介绍一下MFC中的画刷,在之前我们创建的矩形中,如果两个矩形是重叠的,那么后面的矩形就会被遮住,所以我们就可以使用透明画刷来解决这个问题,画刷的创建是通过GetStockObject函数获取到一个新的画刷,之后我们就可以将该画刷添加到设备的上下文中,并且此时会返回一个就的画刷,那么此时我们就要将该画刷保存起来,等结束的时候再调回去,具体操作如下图:
在这里插入图片描述

使用MFC绘画圆和椭圆

首先我们先构建椭圆,MFC构建圆形状是通过矩形来确定圆的边界的,也就是我们会先构建矩形,然后通过矩形的四个边来构造圆和椭圆,具体操作如下图:
在这里插入图片描述
运行之后结果如下图:
在这里插入图片描述

上面我们了解到椭圆是通过矩形边界来构建的,那么圆就是通过正方形的边界来构建的,也就是我们可以先创建一个正方形,然后保证正方形的四个边都与圆相切,那么就可以构建出一个圆了,具体操作如下:
在这里插入图片描述
运行代码可得到结果如下图:
在这里插入图片描述

使用MFC输出文本内容

首先我们可以对输出的字体格式进行设定,例如我们可以输出宋体,也可以输出行楷之类的,这里就要用到CFont这个类,通过该类我们可以创建一个字体对象,具体操作如下:
CFont font; //创建一个字体对象

之后使用CreatePointFont函数来设定当前要使用的字体格式,具体如下图:
在这里插入图片描述
设置好字体之后我们就可以写文字了,此时我们通过CString类来构建一个字符串对象,如下图:
在这里插入图片描述
之后还可以通过SetTextColor函数来设置文字颜色,具体如下图:
在这里插入图片描述
都设置好之后,最终我们就可以通过TextOut函数将我们前面的字符串显示到对应位置,该位置就是我们鼠标放开时所在的位置,具体如下图:
在这里插入图片描述

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值