为什么放大几次后,图片没有了,缩小也无效了,原因在哪呢,怎么解决呢,各位请帮帮忙Option Explicit
Private Const ratio_small As Single = 0.5
Private Const ratio_large As Single = -1#Private Sub Zoom(ByVal img As Image, ByVal ratio As Single)
    img.Stretch = True
    img.Left = img.Left + img.Width * ratio / 2#
    img.Top = img.Top + img.Height * ratio / 2#
    img.Width = img.Width - img.Width * ratio
    img.Height = img.Height - img.Height * ratio
End SubPrivate Sub Command1_Click()
    Zoom Image1, ratio_small
End SubPrivate Sub Command2_Click()
    Zoom Image1, ratio_large
End Sub

解决方案 »

  1.   

    问题出在你的Zoom代码上:
       img.Left = img.Left + img.Width * ratio / 2#
        img.Top = img.Top + img.Height * ratio / 2#
        img.Width = img.Width - img.Width * ratio
        img.Height = img.Height - img.Height * ratio
     你放大的过程同时将图片的位置img.Left 、img.Top 移出了窗体外,而缩小时只缩小了宽度和高度,图片的位置还在你放大时的窗体外位置,当缩小到一定程度,整个图片就完全处于窗体之外(左上角)无法看到了。
      

  2.   

    你试试以下代码,我没有实验:
    假设你的图片控件的父窗体就是Me窗体
    ratio>1放大
    ratio<1缩小
    Private Sub Zoom(ByVal img As Image, ByVal ratio As Single)
        img.Stretch = True
        img.Width = img.Width * ratio
        img.Height = img.Height * ratio
        img.Left =  me.Width /2-img.Width/2
        img.Top = me.Height /2-img.Height/2
    End Sub