在窗体上先放一个picturebox1框,将它拉到屏幕大小。再在picturebox1容器框里添加picturebox2框、picturebox3框、picturebox4框、picturebox5框,picturebox2到5框里都画的有曲线(这是按项目要求画的,不能把这些曲线都画在picturebox1框里面,便于动态删减和编辑这些曲线)。现在的问题是能不能把picturebox1容器框里所有的picturebox框里的曲线都输出成一张图片。
注意:母框(picturebox1框)的高度等于屏幕高度,其他子框(picturebox2到5)的高度都是相同的,但大于屏幕高度。故在picturebox1框里添加了一个垂直滚动条,拖动滚动条才能可以观察picturebox2到5框里完整的曲线

解决方案 »

  1.   

    用bitblt对几个picture进行拷贝(拷贝到目标的位置不同),拷贝模式用组合模式
      

  2.   

    看来这个问题还是比较难啊,如果采取每个picturebox框定位的话,那就太麻烦了,因为这样的picturebox框多达几十个。有没有其他方式呢。比如像滚动抓图那种方式,把picturebox1里所有picturebox框的曲线都滚动(控制滚动条滚动)抓下来成为1张完整的图片。
      

  3.   

    Option ExplicitPrivate Sub Command1_Click()
        
        With Picture2
            Picture1.PaintPicture .Picture, .Left, .Top '合并曲线'
        End With
        
        SavePicture Picture1.Image, "C:\All.bmp"
    End SubPrivate Sub Form_Load()
        Picture1.AutoRedraw = True
        Set Picture1.Picture = LoadPicture("C:\1.bmp") '把这当作画的曲线'
        
        Picture2.BorderStyle = 0
        With Picture2
            Set .Picture = LoadPicture("C:\2.bmp") '把这当作画的曲线'
            .Width = .ScaleX(.Picture.Width, vbHimetric, vbTwips)
            .Height = .ScaleY(.Picture.Height, vbHimetric, vbTwips)
        End With
    End Sub
      

  4.   

    不能贴到PICTURE1里面,那就贴到PICTURE2里面咯.
    你总归要有个地方把所有小图片都贴到一起才能保存为一个文件