如果设计一个CAD系统,进行绘图的时候,图形编辑的时候,等等,都会出现鼠标点击的事件,难道这些事件都要在OnLButtonDown 里进行处理吗,
比如说,画直线,画园,图形平移,肯定都用得到,那如果都在OnLButtonDown里响应,代码岂不是很难维护,有没有更好的办法呀,我是初学者,不知道我这么提问是否正确!谢谢!

解决方案 »

  1.   

    你可以借助工具栏(直线,矩形,圆...),按下哪个就在OnLButtonDown里动态生成一个对象(直线,矩形,圆...),图形平移可以放在鼠标按下,或者鼠标移动函数里。
      

  2.   

    switch
    case
    很好解决的
    再加定义结构体来管理吧~
      

  3.   

    你可以把绘图工作放在OnDraw中,OnLButtonDown中只处理数据的
    另外OnLButtonDown中太长
    可以采用4楼的方法,如果还是太长的话可以把些功能,单独写个函数。
      

  4.   

    switch 
     case 
    然后其他功能独立写函数或类 在CASE下调用
      

  5.   

    设置不同的mode分别做不同的事
      

  6.   

    使用状态模式, 我这篇文章可能对你有用
    http://blog.csdn.net/IT_Fly/archive/2006/05/19/745731.aspx
      

  7.   

    抽象一个Message类,里面有抽象方法OnLButtonDown/OnLButtonUp等,
     然后图元(如直线,曲线,圆等)从Message继承,这样每个图元类处理自己的消息
      

  8.   

    看看MFC的drawcli例子你就明白了
    mfc例子里面好多好东西,为什么好多新手都不注意看呢