我在VC里想动态画图形,譬如我画了一个填充颜色为红色的矩形,然后想擦除它,而且同时恢复原来被该矩形覆盖的图形,应该怎样做?

解决方案 »

  1.   

    其实我是想做一个类似windows里面自带的那个画图工具的程序,可以动态的显示出画图的轨迹,我尝试过用异或的方法做,但不行,楼上说的方法不是很明
      

  2.   

    我是想譬如画了一个红色的矩形,然后再画一个黄色的矩形,为了动态地显示画黄色矩形的过程,我是用响应mousemove的消息函数来不断地先擦除旧的黄色的矩形,然后再画一个新的黄色的矩形。黄色的矩形有可能会覆盖原先存在的红色的矩形,所以怎样在擦除旧的黄色的矩形的同时,把被覆盖的红色的部分还原出来呢?我开始是想用重绘客户区的方法来把被覆盖的红色的部分还原出来的,但因为是响应mousemove消息,所以效果不好。
      

  3.   

    你擦除是用什么擦的~???一个动态的过程:oldpoint newpoint ,newpoint这个点画新的这都知道,问题就是在oldpoint里,你要是就单单的把它变白,这样是不行的,而是恢复回来这个区域点的颜色~
      

  4.   

    我不知道你的颜色是放哪里的,我做过的一个是这样的,一个数组buff,里面放着一张图片的颜色显示用双缓冲,这个的话,我在鼠标没有UP以前没有放画的颜色进buff,只是在显示上画出来了,在擦除的时候调用buff里面的颜色就可以,在鼠标UP以后,保存颜色进buff.