现在有两种方案 
第一种是一张一张的把图片保存(savepicture)  撤销的时候读取上一步保存的图片
第二种是用dim tupian(9) as picture
然后
set tupian(n)= picture1.image
撤销的时候读取上一步保存的图片即可但是有两点疑问
我在用第二种方法时这种数组格式是否能够保存多张图片,会不会只保留最后一张,因为我在用第二种方法处理的时候总是无法得到预期的效果,只能保持现有图片的样子而不能撤销,所以我怀疑保存图像到tupian(5)以后 tupian(4)等以前保存的图片是不是都被tupian(5)覆盖了 也就是说 数组对变量picture有没有效果?第二点疑问就是 用第一种方法保存图片时 能不能把图片保存到用户文件夹(C:\Documents and Settings\用户名)的临时文件中 这个用户文件夹的路径可不可以用类似于%system%(系统目录下的system32目录) 或者是当前程序的目录(app.path)等通配符来表示啊还有这两种方法哪一种更好一些

解决方案 »

  1.   

    1、第一种方法好些。第I张图片:App.Path & "\temp\tp" & I & ".bmp"
    2、使用第二种方法,应该:Dim pic(20) As IPictureDisp
    注意保存时,PictureBox控件的属性AutoReDraw=True,保存的是Image。如:
    Set pic(I)=Picture1.Image
    还原图片时:Set Picture1.Picture=pic(I)
      

  2.   

    使用图元文件API,可以记录和回放一些GDI绘图动作。
      

  3.   

    通常后退功能用 命令模式 搞定如:http://www.google.cn/search?hl=zh-CN&newwindow=1&q=%E5%91%BD%E4%BB%A4%E6%A8%A1%E5%BC%8F+undo&aq=3&oq=%E5%91%BD%E4%BB%A4%E6%A8%A1%E5%BC%8F+