第一个问题,把PictureBox的AutoReDraw设置为True,然后用SavePicture Picture1.Iamge, FileName保存。
第二个问题CSDN上讨论很多次了,你去搜搜看。
--------------------------------------------------------------------
Made by Thirdapple's Studio(http://3rdapple.51.net/)

解决方案 »

  1.   

    to:p_s_w(老彭)
       你的方法是挺好,不过能不能给了例子代码?
       另,如何放缩?
      

  2.   

    我有点懒,就不写整个的程序了。假设你已经有了画线的过程,每画出一条线,就得到了一组物理坐标(x0,y0)-(x1,y1),可以将物理坐标换算成0-1逻辑坐标再保存。例如:
    fx0 = x0/picturebox.ScaleWidth
    fy0 = y0/picturebox.ScaleHeight
    fx1 = x1/picturebox.ScaleWidth
    fy1 = y1/picturebox.ScaleHeight
    假设要把所有的线段存到一个字符串里S,一条直线占一行,例如:
    S = S & fx0 & "," & fy0 & "," & fx1 & "," & fy1 & vbcrlf
    这样就可以把S存到数据库里去了。
    还原时,从数据库里读出S,逐行取出坐标后,还换算回物理坐标,重绘每条直线就可以。
    因为记录的是逻辑坐标,只要改变画布的尺寸,不就可以无损缩放了嘛!