现在我要写一个类似于画图的软件,碰到了一些问题,特来请教各位!
1、如果用户选择了画直线,而且已经点下了鼠标左键,并按住左键不放,鼠标移动,在鼠标当前点和其始点之间总是有一条直线。当鼠标左键松开之后,直线才画好。那个在MouseMove的时候,总是跟着一条直线的效果该如何做?2、如果我现在已经画好了直线、实心椭圆和空心椭圆,现在程序要能够选择画的这些对象,应该如何处理?

解决方案 »

  1.   

    找到你的VC例子SAMPLES\VC98\mfc\ole\drawcli本工程有详细的代码
      

  2.   

    第一个问题:
         你可以在MOUSE_MOVE中用反色画笔把以前的线再画一遍,这样你需要存储以前的一个线条。然后你再用原定的画笔将新的位置再画一条线条。这样就可以了。第二个问题:
        你可以用位每一个默认的图形建立一个类,这个类总应该有图形的位置信息。
    当鼠标移动到这些位置的一个RECT内时。你可以先用反色画一编,然后激活绘画函数,这样不就可以了?呵呵。第一个问题是一定可以的。第二个问题是我个人的看法。呵呵。
      

  3.   

    to isdong:你所说的目录在哪里呀,没找到!不在MSDN里呀To USTCTony:我也知道用异或来实现,可是却总是不成功!有没有相关代码呀?
      

  4.   

    第一个问题,我知道,我有代码,你要么?
    [email protected]第二个,不会,但是看过一本图象处理的书,上面有,所以建议你找本书或者找点资料看,
      

  5.   

    第一个问题MSDN里面确实有,我刚刚看过的,不过看不懂,呵呵。我自己也做过,效果也可以,不过代码不在手边,方法就是在MouseMove的时候先设置
    pDC->SetRop(R2_NOT)把前一条直线重画一遍,再画一条当前的直线。
    MSDN的代码你要在安装光盘里面找的。要的话我可以发给你。
      

  6.   

    谢谢!
    [email protected]我再找找看。怎么实现直线、椭圆等的选择呀!?
      

  7.   

    MSDN的例子DrawCli,很有参考价值。