如何在命令按钮中编写代码,将较大的图片框中的一部分复制到较小的一个图片框中?
[如将A图片框中起点为(100,150),大小为(320*240)的一部分复制到B图片框中]

解决方案 »

  1.   

    object.PaintPicture picture, x1, y1, width1, height1, x2, y2, width2, height2, opcode如:Me.Picture2.PaintPicture Me.Picture1.Picture, X, Y, w, h
    将图片2中内容从X,Y点开始复制,复制到图片1中(W宽,H高)其余参数见下:MSDN:使用 PaintPicture 方法,可以在窗体、图片框和 Printer 对象上的任何地方,绘制图形。PaintPicture 方法的语法是:[object.]PaintPicture pic, destX, destY[, destWidth[, destHeight[, srcX _[, srcY[, srcWidth[, srcHeight[, Op]]]]]]]目标 object 指的是窗体、图片框或 Printer 对象,这些地方都是 pic 图片表现的处所。如果 object 被忽略了,则认为指定的就是当前的窗体。pic 参数必须是一个图片对象,它是由窗体或控件的 Picture 属性决定。destX 和 destY 参数,是按照 objec 的 ScaleMode,该图象将出现的水平和垂直位置。destWidth 和 destHeight 参数是可选项,用来设置在 object 目标中该图象的宽度和高度。srcX 和 srcY 参数是可选项,用来定义 pic 中裁剪区左上角的 x 和 y 坐标。可选的 Op 参数用来定义当在目标 object 上绘图时,在图片上执行的光栅操作(例如,AND 和 XOR)。PaintPicture 方法可代替 BitBlt Windows API 函数,在将矩形图形块从一个地方移到任意另一地方时,它可执行广泛的各种操作。
      

  2.   


      只有给你示例才可以让你满足了:在窗体上加入Picture1,Picture2.然后在Picture1的Picture属性给它设置一张图片: 程序如下: Private Sub Form_Load()
        Picture1.ScaleMode = 3
        Picture2.ScaleMode = 3
        Picture1.AutoRedraw = True
        Picture2.AutoRedraw = True
      End Sub  Private Sub Command1_Click()
        Picture2.PaintPicture Picture1.Picture, _
                              0, _
                              0, _
                              320, _
                              240, _
                              100, _
                              150, _
                              320, _
                              240, _
                              vbSrcCopy
      End Sub
      

  3.   

    请详细介绍一下用API函数Bitblt的具体写法可以吗?
      

  4.   

    BitBlt VB声明 
    Declare Function BitBlt Lib "gdi32" Alias "BitBlt" (ByVal hDestDC 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 dwRop As Long) As Long 
    说明 
    将一幅位图从一个设备场景复制到另一个。源和目标DC相互间必须兼容 
    返回值 
    Long,非零表示成功,零表示失败。会设置GetLastError 
    参数表 
    参数 类型及说明 
    hDestDC Long,目标设备场景 
    x,y Long,对目标DC中目标矩形左上角位置进行描述的那个点。用目标DC的逻辑坐标表示 
    nWidth,nHeight Long,欲传输图象的宽度和高度 
    hSrcDC Long,源设备场景。如光栅运算未指定源,则应设为0 
    xSrc,ySrc Long,对源DC中源矩形左上角位置进行描述的那个点。用源DC的逻辑坐标表示 
    dwRop Long,传输过程要执行的光栅运算 
     例子:BitBlt picture2.hDC, 0, 0, picture1.Width, picture1.Height, picture1.hdc, 0, 0, vbSrcCopy
    '将picture1中的全部图片copy到picture2里。
      

  5.   

    如将A图片框中起点为(100,150),大小为(320*240)的一部分复制到B图片框中这么写:BitBlt B图片框.hDC, 0, 0, 320, 240, A图片框.hdc, 100, 150, vbSrcCopy