MFC之画线方法:
1新建一个单文档MFC,默认设置
2认识类文件
新类有
CDLine,:画线时的线类,线要素:起点,终点,线宽,颜色的三原色
Cline:全局变量存储类,可用可不用
ClAttribute:设置属性对话框类,设置属性对话框对应的类,一个对话框就要绑定一个类,设置宽、颜色,4个成员变量,公有的,int型
认识本身有的类,其他的类,这里不会用只讲DrawView类,OnInitDialog()是对话框初始函数,对画框内容进行初始设置。也可以直接对4个变量在构造函数(CLAttribute())中初始化设定值。
类里面有线宽,颜色三原色,起点,终点,类型type(辅助判断是否获取)。
3设置菜单resoureceview按钮
点击menu下的文件
绑定事件,编写响应函数
编译运行点击线操作,属性会跳出
4添加新对话框和绑定类
在resource vie栏中点击,右键insert dialog
设置新类
点击OK
5对画框里填加控件并绑定变量
认识控件
控件有对应的ID号,有的需要绑定变量如编辑框,
绑定变量,右键ClassWizard
类似的添加颜色三原色m_red,m_green,m_blue
6开始画线
画线主要依靠鼠标左键和右键,这里左键下去打点,拖动,释放生成直线
在DrawView类中添加起点m_Spoint,终点m_epoint,
并对部分变量初始化,在构造函数里面
设置完后,开始找到鼠标左键按下和释放响应事件
设置线属性方法
设置点击菜单响应事件
7直线拾取
在画线的过程中,每一条线有起点、终点、线宽和颜色属性,我们需要将他们封装到类对象,再添加到数组,这里介绍容器CPtrArray, http://baike.baidu.com/link?url=7qXwzxYvw1_90D8XH7mksQKkUpoVASU_pL9t8OtVVz8JQ2VFx_9fG9IyOtkaOM0Xg_thebLxT1QYt2RNZB088H-1WMD2y8D_knQqtH2KUHu中查看详细用法
在cpp里面
OnlBUttonUp函数中,将每次画的线,存到数组m_ptrArray里面
设置获取函数
点击线时获取当前的点point(x,y),遍历数组中的每条直线,判断point到每条直线的两端的距离之差小于一个阈值。重新设置画笔属性,重绘该直线起点到终点,从而达到高亮显示,弹出对话框修改属性
8文件保存
遍历数组m_ptrArray,将内容取出,编码格式,存入TXT中
9文件打开
9重绘函数编写
可以借助本身的OnDraw也可直接写在打开文件那
在上述open函数中直接注释掉部分代码,并写入以下代码
效果图