高手都进来看一看!!
我想问一下,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
问题点数:0、回复次数:6Top
1 楼rappercn(rapper)回复于 2003-06-03 12:14:15 得分 0
picture可以作为容器使用,image不可以Top
2 楼enj1224(好的翅膀)回复于 2003-06-03 12:28:38 得分 0
楼上说的对。image是轻量级的控件Top
3 楼hisourcezhang(谨以此篇与所有手机用户共勉! :))回复于 2003-06-03 12:41:28 得分 0
同意 rappercn(rapper) ( )Top
4 楼ch21st(www.blanksoft.com)回复于 2003-06-03 13:14:39 得分 0
我是这样理解的不知道对不对
image控件仅仅相当于picturebox的image属性
它比pic省资源,它不是容器,没有窗口句柄(不是窗口)Top
5 楼youyou1008()回复于 2003-06-03 16:14:51 得分 0
大家知道如何将picturebox中的picture整体放大或者整体缩小如何可以实现吗?Top
6 楼enj1224(好的翅膀)回复于 2003-06-05 20:39:05 得分 0
大家知道如何将picturebox中的picture整体放大或者整体缩小如何可以实现吗?
关注。。。Top




