我用PaintPicture向一个picture中画图的时候,发现它会把图放大一点。图的右边和下边有一些画不上。请问如何解决?
我的代码如下,我把test1.jpg的右边和下边各画了一条线。效果很容易看到。
多谢!!
Private Sub Command1_Click()
    Dim TempPic As IPictureDisp
    Picture1.AutoRedraw = True
    
    Set TempPic = LoadPicture("D:/test1.jpg")
    Picture1.PaintPicture TempPic, 0, 0, Picture1.Width, Picture1.Height
    Set TempPic = NothingEnd SubPrivate Sub Form_Load()
    Picture1.Move 0, 0
    Picture1.AutoSize = True
    Open_Name = "D:/test1.jpg"
    Picture1.Picture = LoadPicture(Open_Name)
    bb1 = Picture1.Width
    bb2 = Picture1.Height
End Sub

解决方案 »

  1.   

    Picture1.PaintPicture TempPic, 0, 0, Picture1.ScaleWidth, Picture1.ScaleHeight试试看
      

  2.   

    试试这个:
    Picture1.PaintPicture TempPic, 0, 0, Picture1.Width, Picture1.Height,0,0,Picture1.Width, Picture1.Height
      

  3.   

    是坐标的问题,改一下SCALEMODE坐标模式!!
      

  4.   

    写错,是这个:
    Picture1.PaintPicture TempPic, 0, 0, Picture1.scaleWidth, Picture1.scaleHeight,0,0,Picture1.scaleWidth, Picture1.scaleHeight
      

  5.   

    PaintPicture 方法用以在 Form, PictureBox 或 Printer 上绘制图形文件(.bmp, .wmf, .emf, .ico或 .dib)的内容。不支持命名参数。语法object.PaintPicture picture, x1, y1, width1, height1, x2, y2, width2, height2, opcodePaintPicture 方法的语法包含下列部分:部分 描述
    object 可选的。一个对象表达式,该对象一定能在“应用于”列表中找到。如果省略 object,带有焦点的 Form 对象缺省为 object。
    Picture 必需的。要绘制到 object 上的图形源。Form 或 PictureBox 必须是 Picture 属性。
    x1, y1 必需的。均为单精度数值,指定在 object 上绘制 picture 的目标坐标(x-轴和y-轴)。object 的 ScaleMode 属性决定使用的度量单位。 
    Width1 可选的。单精度数值,指示 picture 的目标宽度。object 的 ScaleMode 属性决定使用的度量单位。如果目标宽度比源宽度 (width2) 大或小,将适当地拉伸或压缩 picture。如果该参数省略,则使用源宽度。
    Height1 可选的。 单精度数值,指示 picture 的目标高度。object 的 ScaleMode 属性决定使用的度量单位。如果目标高度比源高度 (height2) 大或小,将适当地拉伸或压缩 picture。如果该参数省略,则使用源高度。
    x2, y2 可选的。均为单精度数值,指示 picture 内剪贴区的坐标(x-轴和y-轴)。object 的 ScaleMode 属性决定使用的度量单位。如果该参数省略,则缺省为 0。
    Width2 可选的。单精度数值,指示 picture 内剪贴区的源宽度。object 的 ScaleMode 属性决定使用的度量单位。如果该参数省略,则使用整个源宽度。
    Height2 可选的。 单精度数值,指示 picture 内剪贴区的源高度。object 的 ScaleMode 属性决定使用的度量单位。如果该参数省略,则使用整个源高度。
    Opcode 可选的。是长型数值或仅由位图使用的代码。它用来定义在将 pictur 绘制到 object 上时对 picture 执行的位操作(例如, vbMergeCopy 或 vbSrcAnd 操作符)。关于位操作符常数的完整列表,请参阅 Visual Basic Help 文件中的 RasterOp Constants 主题。
    说明通过使用负的目标高度值 (height1) 和 / 或目标宽度值 (width1) ,可以水平或垂直翻转位图。 
    可以省略任何多个可选的尾部的参数 。如果省略了一个或多个可选尾部参数,则不能在指定的最后一个参数后面使用逗号。如果想指定某个可选参数,则必须先指定语法中出现在该参数前面的全部参数。
      

  6.   

    ok , 行了。多谢!用scaleHeight就可以了。