vb中,如何做到在一个picturebox内画的图形(不是装入的图像),在另一个picturebox中显示出来?除了重画以外有没有更有效的方法?

解决方案 »

  1.   

    paintpicture 方法或bitblt函数
      

  2.   

    VBToy 能说详细点吗 paintpicture 对picturepox装入的图像有效 对画的图形没效
      

  3.   

    Picture2.Picture = Picture1.Image
      

  4.   

    pictureBox中autoRedraw=true,就可以对该picturebox中的图形进复制操作了。
      

  5.   

    注意两个picturebox的autoredraw属性都要为true。
      

  6.   

    谢谢!
    那如果picture1和picture2大小不一样,要求picture2只显示picture1的一部分,怎么做呢?
      

  7.   

    如果图片大小一样用lsftest() 的方法的确很方便,否则就只能复制了。
      

  8.   

    VBToy(无证编程)
    怎么复制?能不能志复制一部分?能给个简单的示例吗?2个picturebox大小不一样
      

  9.   

    PaintPicture 方法
    用以在 Form, PictureBox 或 Printer 上绘制图形文件(.bmp、.wmf、.emf、.cur、.ico或 .dib)的内容。
    语法object.PaintPicture picture, x1, y1, width1, height1, x2, y2, width2, height2, opcodePicture2.PaintPicture Picture1.Image, 1, 2, 100, 100, 20, 30, 100, 100, vbSrcCopy注意设置autoRedraw=true
      

  10.   

    PaintPicture 方法,可以查查msdn就很清楚了.
    也可以用api函数:StretchBlt实现Public Declare Function StretchBlt Lib "gdi32" Alias "StretchBlt" (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
      

  11.   

    可能是我的题目没能说清楚意图,我想达到这样一个效果:
    1、PictureBox1较大,作为绘制图形(线条,方框,....)的画板;
    2、PictureBox2较小,作为PictureBox1的视口,能够显示PictureBox1中的一部分;
    3、PictureBox1和PictureBox2的坐标体系一致,但坐标单位大小不同,这样能达到在PictureBox2中实现PictureBox1不失真缩放的效果
      

  12.   

    难点就在于要求按PictureBox2的坐标单位显示PictureBox1的部分内容!