我做一个将picturebox里的图形(也是用程序画的)放大的程序.
我设置了一个最大放大倍数,结果,有时候能运行,有时候会出错.
出错地点:Picx.Scale (xmin, ymax)-(xmax, ymin)
错误原因:不能创建 AutoRedraw 图象(错误 480)
后来根据帮助我一查,发现是内存消耗太大的时候,就出错.
各位高手,我该怎么解决这个问题?

解决方案 »

  1.   

    在picture的paint事件中用paintpicture函数画试试
      

  2.   

    我放大的办法就是直接将picturebox的width,height,left,top重新设置
    然后cls,然后重画.
    楼上的有什么有关放大的资料提供吗?
      

  3.   

    Private Declare Function StretchBlt Lib "gdi32" (ByVal hdc As Long, ByVal X As Long, ByVal Y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hSrcDC As Long, ByVal xSrc As Long, ByVal ySrc As Long, ByVal nSrcWidth As Long, ByVal nSrcHeight As Long, ByVal dwRop As Long) As Long
      

  4.   

    不知道楼主要缩放的是矢量图还是位图呢.
    但是好像都不需要用SCALE来做.
    如果是矢量图的话,直接在输出尺寸上乘上比例因子就可以.
    如果是位图,用StretchBlt也好,PICTURE自己带的PAINTPICTURE也好,都可以很简单快速得完成
      

  5.   

    我只用了一个picturebox.我希望做的效果就象autoCAD里一样,自由的放大缩小和平移.
    平移用move方法很容易实现.我做放大就是把picturebox的width,height,left,top改变之后直接重新调用数据,用line方法一笔一笔的画,所以容易内存不足.
    如果用paintpicture好象需要另外一个picturebox,也就是说源和目的不能是同一个picturebox,是吧?
      

  6.   

    picturebox的width,height,left,top改变之后
    ----------------------------
    你为什么要改变picturebox的大小呢?改变控件的大小不一定能改变图像的大小啊!
      

  7.   

    benyfeifei(狒狒):
    picturebox的width,height,left,top改变之后
    ----------------------------
    你为什么要改变picturebox的大小呢?改变控件的大小不一定能改变图像的大小啊!我的做法是改变picturebox的大小后,重新画图.