怎么让图片在某一固定区域内上下移动(注:图片在该区域的外面部分不显示,直到移动至该区域的部分才显示出来)请大侠回答.

解决方案 »

  1.   

    Option ExplicitPrivate pic As IPictureDisp
    Private y As LongPrivate Sub Form_Load()
        Me.ScaleMode = vbPixels
        Me.AutoRedraw = True
        Set pic = LoadPicture("1.BMP")
        maxY = ScaleY(pic.Height, vbTwips, vbPixels)
    End SubPrivate Sub Timer1_Timer()
        Cls
        Me.PaintPicture pic, 100, 100, , , 0, y, 100, 100
        y = y + 10
    End Sub
      

  2.   

    Me.PaintPicture pic, 100, 100, , , 0, y, 100, 100
    谢谢,再请问这里哪两个值是指定显示的范围的?
      

  3.   

    .PaintPicture picture,x1,y1,width1,height1,x2,y2,width2,height2,opcode
    x2,y2,width2,height2 指明从源图片上切割的范围
    x1,y1,width1,height1 指明在目标上粘贴的位置,省略的width1,height1就自动用width2,height2代替。
      

  4.   

    y从maxY-100开始逐步减小。
    反正在参数x2、y2上做文章,怎么移都可以。
      

  5.   

    在PaintPicture前加一句Line (100,100)-(200,200), vbBalck, BF
      

  6.   

    你的意思是移动图片到边界时只在区域中显示不符画面的情况?
    那么在PaintPicture下,自己计算好大小调用Line语句。