我想问一下,image控件和picturebox控件的主要区别在哪?
分别适用于什么场合?
我碰到过可以用两个picturebox控件和一个image控件来缩放image中的picture,但是为什么我将image 控件用第三个picturebox代替,却达不到这样的效果,为什么呢?
大家可以看看下面的程序!
option Explicit
Private ScrollVert As Boolean, ScrollHor As Boolean
Private ZoomFact As Single
Private IsRightButt As Boolean
Const ZFactorC As Byte = 100        ' percentage increase
Const ScrollFactorC As Byte = 20    ' used to calculate scroll max and change (can play with this value)
Private Sub cmdExit_Click()
 Unload Me
End Sub
Private Sub Form_Load()
 ScrollVert = False: ScrollHor = False
 ZoomFact = ZFactorC
 ZoomPicture
End Sub
Private Sub ZoomPicture()
Dim SizeX As Single, SizeY As Single
Dim Ratio As Single
Dim Wdth As Single, Hght As Single
 Screen.MousePointer = vbHourglass
 Wdth = PicScroll.ScaleWidth
 Hght = PicScroll.ScaleHeight
 Ratio = ZoomFact / 100
 ' redimension original image
 SizeX = ImgOrig.Width * Ratio
 SizeY = ImgOrig.Height * Ratio
 
 ScrollHor = IIf(SizeX > Wdth, True, False)
 ScrollVert = IIf(SizeY > Hght, True, False)
 
 PicZoom.Cls
 PicZoom.Move 0, 0, SizeX, SizeY
 PicZoom.PaintPicture ImgOrig.Picture, 0, 0, SizeX, SizeY ' adjust scroll bar
 If ScrollVert Then
   VSImage.Visible = True
   VSImage.Min = 0
   VSImage.Max = (PicZoom.ScaleHeight - PicScroll.ScaleHeight) / ScrollFactorC
   VSImage.SmallChange = ScrollFactorC
   VSImage.LargeChange = PicZoom.ScaleHeight / ScrollFactorC
   VSImage.Value = VSImage.Min
 Else
   VSImage.Visible = False
 End If If ScrollHor Then
   HSImage.Visible = True
   HSImage.Min = 0
   HSImage.Max = (PicZoom.ScaleWidth - PicScroll.ScaleWidth) / ScrollFactorC
   HSImage.SmallChange = ScrollFactorC
   HSImage.LargeChange = PicZoom.ScaleWidth / ScrollFactorC
   HSImage.Value = HSImage.Min
 Else
   HSImage.Visible = False
 End If
 Screen.MousePointer = vbDefault
End Sub
Private Sub HSImage_Change()
 If ScrollHor Then
   PicZoom.Left = -HSImage.Value * ScrollFactorC
 End If
End Sub
Private Sub piczoom_Click()
 If IsRightButt Then
    ZoomFact = ZoomFact + ZFactorC
 Else
    ZoomFact = IIf(ZoomFact <= ZFactorC, ZFactorC, ZoomFact - ZFactorC)
 End If
 ZoomPicture
End Sub
Private Sub piczoom_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
 If Button = 1 Then
    IsRightButt = True
 Else
    IsRightButt = False
 End If
End Sub
Private Sub VSImage_Change()
 If ScrollVert Then
   PicZoom.Top = -VSImage.Value * ScrollFactorC
 End If
End Sub

解决方案 »

  1.   

    picture可以作为容器使用,image不可以
      

  2.   

    楼上说的对。image是轻量级的控件
      

  3.   

    同意  rappercn(rapper) ( )
      

  4.   

    我是这样理解的不知道对不对
    image控件仅仅相当于picturebox的image属性
    它比pic省资源,它不是容器,没有窗口句柄(不是窗口)
      

  5.   

    大家知道如何将picturebox中的picture整体放大或者整体缩小如何可以实现吗?
      

  6.   

    大家知道如何将picturebox中的picture整体放大或者整体缩小如何可以实现吗?关注