求一个用VC++绘图的程序(在线)!!!

来源:百度知道 编辑:UC知道 时间:2024/06/29 00:02:39
用VC++画一个"田"字这样的由线段组成的网格图,然后在客户区用鼠标右键单击网格的任一小段,在弹出的对话框里面选择是否删除选定的那个小段,并且如果误删除了某一小段之后还能恢复.希望提供源代码或者类似的源代码,本人是VC新手,望得到指点!
我只会用MOVETO()和LINETO()画出这样的网格,但是怎么样对每一小段添加鼠标事件删除或恢复其中的某一段就不知道怎么办了!
分数不够可以再加哈!

用一个栈来保存所有的删除信息,栈的元素结构你可以自己想个,比如我想了一个三元结构{tag,x,y};tag表示是横线还是竖线,x,y分别表示该线段在横、纵方向上是第几段。

在OnLButtonDown里增加判断点击点是否在某段网格线上的代码。在某段上则AfxMessageBox问是否删除,删除则将此删除信息入栈,然后OnPaint重画。

重画可以先将全部网格画出,然后遍历栈的删除信息,对删除的各段用背景色重绘一下。

响应LBUTTON 的消息。哪种类型看情况。

对鼠标point 进行 判断, 在哪个格 就 响应删除窗口。

至于怎么删除,你最好 用容器 存储 由CPoint组成的线类

检测哪个线要删除,就删除哪个线。其他不变,

Onpaint 重画。

容器存储,孙鑫VC++教程CDC部分 有很详细介绍了, 你自己看看

网上搜索DrawCli,这个是微软给的绘图程序例子,功能很强大,有很多值得你参考的地方,甚至可以在其基础上做开发