我在程序中绘了几条直线,如何单击让激活其中一条或几条,以便修改,如何实现!
请大家帮我,给个思路.有源码最好.   
对于真正帮助了我的朋友们,我会开贴狂送分的,      一定会的!

解决方案 »

  1.   

    在绘图中,建立一个strokeList表,表中的每个元素代表一条线段,线段又是由一个点数组组成。于是在鼠标点击时,先获取鼠标的坐标,在去查表,返回被点击的线段。然后改变这条线段的粗度,表明被激活!
    这是我的想法,不知道行不行!
      

  2.   

    我以前做过一个波形显示的小程序,
    如果你的直线不交叉的话,你可计算好每条直线的位置,
    然后获得mouse单击的位置,判断是哪一条直线,
    根据修改后的数据,重画。
      

  3.   

    to LinHanLao(凌寒) 
    估计楼主说的情况应该是有交叉的。不知道交叉的怎么解决?关注中!
      

  4.   

    对就照hanwg() 说的,把MSDN上的DrawCli的程序取出来研究一下!那个我刚才看了,很强大!
      

  5.   

    没那么麻烦.看看beginpath和endpath.它可以记录你划线的区域和操作,然后在用rgn和窗口坐标联系起来就行.
    这样不但直线,任意图形都可以.
      

  6.   

    给个思路:
    用链表(或数组)把你所有的直线保存下来。当鼠标点下时,得到一个点坐标。求该点到所有直线的距离。距离为零(或是一个足够小的值)者即说明该直线被选种。我想AutoCAD就这样做的。
      

  7.   

    麻烦!做一个AtLine()AtPoint函数,用于得到点是否落在线上,或两个端点。
    如果true 
    画出热点表示选中。
    从数组中取这个线,进行修改。要不我给你个程序(我写的画图程序)。
      

  8.   

    强烈推荐!!!!!!!!!!!!!!!!
    强烈推荐!!!!!!!!!!!!!!!!
    给你一本书————Visual C++高级编程技术——开发实刨析例。里面有所有算法。