MFC之画线方法

时间:2024-03-19 07:22:32

MFC之画线方法:
1新建一个单文档MFC,默认设置
2认识类文件
MFC之画线方法
新类有
CDLine,:画线时的线类,线要素:起点,终点,线宽,颜色的三原色
MFC之画线方法
Cline:全局变量存储类,可用可不用

ClAttribute:设置属性对话框类,设置属性对话框对应的类,一个对话框就要绑定一个类,设置宽、颜色,4个成员变量,公有的,int型
MFC之画线方法
认识本身有的类,其他的类,这里不会用只讲DrawView类,OnInitDialog()是对话框初始函数,对画框内容进行初始设置。也可以直接对4个变量在构造函数(CLAttribute())中初始化设定值。
MFC之画线方法
类里面有线宽,颜色三原色,起点,终点,类型type(辅助判断是否获取)。
3设置菜单resoureceview按钮
MFC之画线方法
点击menu下的文件
MFC之画线方法
MFC之画线方法
绑定事件,编写响应函数
MFC之画线方法
MFC之画线方法
MFC之画线方法

编译运行点击线操作,属性会跳出
4添加新对话框和绑定类
在resource vie栏中点击,右键insert dialog
MFC之画线方法
MFC之画线方法
设置新类
MFC之画线方法
点击OK
5对画框里填加控件并绑定变量
认识控件
MFC之画线方法
控件有对应的ID号,有的需要绑定变量如编辑框,
MFC之画线方法
MFC之画线方法
绑定变量,右键ClassWizard
MFC之画线方法
类似的添加颜色三原色m_red,m_green,m_blue

6开始画线
画线主要依靠鼠标左键和右键,这里左键下去打点,拖动,释放生成直线
在DrawView类中添加起点m_Spoint,终点m_epoint,
并对部分变量初始化,在构造函数里面
MFC之画线方法
设置完后,开始找到鼠标左键按下和释放响应事件
MFC之画线方法
MFC之画线方法
MFC之画线方法

设置线属性方法
设置点击菜单响应事件
MFC之画线方法
7直线拾取
在画线的过程中,每一条线有起点、终点、线宽和颜色属性,我们需要将他们封装到类对象,再添加到数组,这里介绍容器CPtrArray, http://baike.baidu.com/link?url=7qXwzxYvw1_90D8XH7mksQKkUpoVASU_pL9t8OtVVz8JQ2VFx_9fG9IyOtkaOM0Xg_thebLxT1QYt2RNZB088H-1WMD2y8D_knQqtH2KUHu中查看详细用法
在cpp里面
MFC之画线方法
MFC之画线方法
OnlBUttonUp函数中,将每次画的线,存到数组m_ptrArray里面

设置获取函数
MFC之画线方法
点击线时获取当前的点point(x,y),遍历数组中的每条直线,判断point到每条直线的两端的距离之差小于一个阈值。重新设置画笔属性,重绘该直线起点到终点,从而达到高亮显示,弹出对话框修改属性
MFC之画线方法
8文件保存
遍历数组m_ptrArray,将内容取出,编码格式,存入TXT中
MFC之画线方法
9文件打开
MFC之画线方法
MFC之画线方法
9重绘函数编写
可以借助本身的OnDraw也可直接写在打开文件那

在上述open函数中直接注释掉部分代码,并写入以下代码
MFC之画线方法
效果图
MFC之画线方法
MFC之画线方法
MFC之画线方法