Private Sub Command5_Click()Form1.PaintPicture Picture1.Picture, 0, 0, 1860, 1885, 100, 100, Picture1.Picture.Width, Picture1.Picture.HeightForm1.PaintPicture Picture1.Picture, 0, 0, 1860, 1885, 100, 100, 100, 100
End Sub看似应该显示相同大小的图片(都是1860, 1885),为何显示结果相差如此大~~~

解决方案 »

  1.   

    Picture1.Picture.Width和Picture1.Picture.Height的单位不是缇
      

  2.   

    除非你的Picture1.Picture.Width, Picture1.Picture.Height等于100,100,否则就会有差别的啊。
    如果我没分析错,你的图片大小是100*100像素,你应该将Picture1.Picture.Width的单位转一下才行。
    Me.ScaleX(Picture1.Picture.Width, vbHimetric, vbPixels)
    Me.ScaleY(Picture1.Picture.Height, vbHimetric, vbPixels)
      

  3.   

    重看了一下你的问题,还是有些问题,看你前面的单位1860、1885应该是缇,如果你想转成100缇,就把我上式中Me.ScaleX(Picture1.Picture.Width, vbHimetric, vbPixels)中的vbPixels改成vbTwips就行了,总之一条语句中的单位应该统一起来。
      

  4.   

    Private Sub Command5_Click()
    Form1.Scale (0, Picture1.ScaleHeight)-(Picture1.ScaleWidth, 0)
    Line (0, 100)-(200, 0)
    Form1.PaintPicture Picture1.Picture, 200, 0, Picture1.Picture.Width, Picture1.Picture.Height, Picture1.ScaleLeft, Picture1.ScaleTop, Picture1.Picture.Width, Picture1.Picture.Height
    我建立的一个Form的坐标系中,Line (0, 100)-(200, 0)中最后得到的结果是左下脚为(0,0)坐标的标准坐标系为基准画的一条线,而Form1.PaintPicture Picture1.Picture, 200, 0则是y的0坐标到了左上角纳?
      

  5.   

    这个问题不奇怪,因为这只是一种假象你改成这样就明白了,
    Form1.PaintPicture Picture1.Picture, 200, 0, 5000, 5000, Picture1.ScaleLeft, Picture1.ScaleTop, Picture1.Picture.Width, Picture1.Picture.Height
    结果肯定是正确的。(假设你的单位为缇)不过有一个问题我到是很奇怪,你这贴在列表中显示已结,但是为啥我在贴中却看不到得分记录呢?