PictureBox 自动缩放图片、滚动条查看图片
Private Sub Combo1_Click()
Picture2.Cls
Picture3.Picture = LoadPicture(App.Path + "\" + Combo1.Text)
Dim B1 As Double, B2 As Double
B1 = Me.Picture3.Height / Me.Picture3.Width
B2 = Me.Picture1.Height / Me.Picture1.Width
If Me.Picture3.Width <= Me.Picture1.Width And Me.Picture3.Height <= Me.Picture1.Width Then
Me.Picture2.Width = Me.Picture3.Width
Me.Picture2.Height = Me.Picture3.Height
Me.Picture2.Left = (Me.Picture1.Width - Me.Picture3.Width) / 2
Me.Picture2.Top = (Me.Picture1.Height - Me.Picture3.Height) / 2
ElseIf Me.Picture3.Width > Me.Picture1.Width Or Me.Picture3.Height > Me.Picture1.Height Then
If B1 >= B2 Then '也就是说应该按照高度缩放
Me.Picture2.Top = 0
Me.Picture2.Height = Me.Picture1.Height
Me.Picture2.Width = Me.Picture2.Height / B1
Me.Picture2.Left = (Me.Picture1.Width - Me.Picture2.Width) / 2
Else
Me.Picture2.Left = 0
Me.Picture2.Width = Me.Picture1.Width
Me.Picture2.Height = Me.Picture1.Width * B1
Me.Picture2.Top = (Me.Picture1.Height - Me.Picture2.Height) / 2
End If
End If
Picture2.PaintPicture Picture3.Picture, 0, 0, Picture2.Width, Picture2.Height, 0, 0, Picture3.Width, Picture3.Height
End Sub
Picture2.Cls
Picture3.Picture = LoadPicture(App.Path + "\" + Combo1.Text)
Dim B1 As Double, B2 As Double
B1 = Me.Picture3.Height / Me.Picture3.Width
B2 = Me.Picture1.Height / Me.Picture1.Width
If Me.Picture3.Width <= Me.Picture1.Width And Me.Picture3.Height <= Me.Picture1.Width Then
Me.Picture2.Width = Me.Picture3.Width
Me.Picture2.Height = Me.Picture3.Height
Me.Picture2.Left = (Me.Picture1.Width - Me.Picture3.Width) / 2
Me.Picture2.Top = (Me.Picture1.Height - Me.Picture3.Height) / 2
ElseIf Me.Picture3.Width > Me.Picture1.Width Or Me.Picture3.Height > Me.Picture1.Height Then
If B1 >= B2 Then '也就是说应该按照高度缩放
Me.Picture2.Top = 0
Me.Picture2.Height = Me.Picture1.Height
Me.Picture2.Width = Me.Picture2.Height / B1
Me.Picture2.Left = (Me.Picture1.Width - Me.Picture2.Width) / 2
Else
Me.Picture2.Left = 0
Me.Picture2.Width = Me.Picture1.Width
Me.Picture2.Height = Me.Picture1.Width * B1
Me.Picture2.Top = (Me.Picture1.Height - Me.Picture2.Height) / 2
End If
End If
Picture2.PaintPicture Picture3.Picture, 0, 0, Picture2.Width, Picture2.Height, 0, 0, Picture3.Width, Picture3.Height
End Sub
点击下载---田草博客--PictureBox自动缩放图片
PictureBox 带滚动条
Sub YSCCLL(Frm As Form)
With Frm
Frm.Picture2.Picture = LoadPicture(App.Path + "\" + Combo1.Text)
If .Picture2.Height > .Picture1.Height And .Picture2.Width > .Picture1.Width Then
'图片尺寸高宽均大于图片框的尺寸
.Picture2.Left = 0
.Picture2.Top = 0
'水平滚动条
With .HScroll1
.Enabled = True
.Max = Frm.Picture2.Width - Frm.Picture1.Width
.LargeChange = .Max / 2
.Value = .Max / 2
End With
'垂直滚动条
With .VScroll1
.Enabled = True
.Max = Frm.Picture2.Height - Frm.Picture1.Height
.LargeChange = .Max / 2
.Value = .Max / 2
End With
ElseIf .Picture2.Height > .Picture1.Height And .Picture2.Width <= .Picture1.Width Then
'图片的高度超过图片框的高度
.Picture2.Left = 0
.Picture2.Top = 0
.HScroll1.Enabled = False
'垂直滚动条
With .VScroll1
.Enabled = True
.Max = Frm.Picture2.Height - Frm.Picture1.Height
.LargeChange = .Max / 2
.Value = .Max / 2
End With
.Picture2.Left = (.Picture1.Width - Frm.Picture2.Width) / 2
ElseIf .Picture2.Height <= .Picture1.Height And .Picture2.Width > .Picture1.Width Then
'图片的宽度超过图片框的宽度
.Picture2.Left = 0
.Picture2.Top = 0
.VScroll1.Enabled = False
'水平滚动条
With .HScroll1
.Enabled = True
.Max = Frm.Picture2.Width - Frm.Picture1.Width
.LargeChange = .Max / 2
.Value = .Max / 2
End With
.Picture2.Top = (.Picture1.Height - Frm.Picture2.Height) / 2
Else
'图片的尺寸均小于等于图片框的尺寸
.VScroll1.Enabled = False
.HScroll1.Enabled = False
.Picture2.Left = (.Picture1.Width - Frm.Picture2.Width) / 2
.Picture2.Top = (.Picture1.Height - Frm.Picture2.Height) / 2
End If
End With
End Sub
With Frm
Frm.Picture2.Picture = LoadPicture(App.Path + "\" + Combo1.Text)
If .Picture2.Height > .Picture1.Height And .Picture2.Width > .Picture1.Width Then
'图片尺寸高宽均大于图片框的尺寸
.Picture2.Left = 0
.Picture2.Top = 0
'水平滚动条
With .HScroll1
.Enabled = True
.Max = Frm.Picture2.Width - Frm.Picture1.Width
.LargeChange = .Max / 2
.Value = .Max / 2
End With
'垂直滚动条
With .VScroll1
.Enabled = True
.Max = Frm.Picture2.Height - Frm.Picture1.Height
.LargeChange = .Max / 2
.Value = .Max / 2
End With
ElseIf .Picture2.Height > .Picture1.Height And .Picture2.Width <= .Picture1.Width Then
'图片的高度超过图片框的高度
.Picture2.Left = 0
.Picture2.Top = 0
.HScroll1.Enabled = False
'垂直滚动条
With .VScroll1
.Enabled = True
.Max = Frm.Picture2.Height - Frm.Picture1.Height
.LargeChange = .Max / 2
.Value = .Max / 2
End With
.Picture2.Left = (.Picture1.Width - Frm.Picture2.Width) / 2
ElseIf .Picture2.Height <= .Picture1.Height And .Picture2.Width > .Picture1.Width Then
'图片的宽度超过图片框的宽度
.Picture2.Left = 0
.Picture2.Top = 0
.VScroll1.Enabled = False
'水平滚动条
With .HScroll1
.Enabled = True
.Max = Frm.Picture2.Width - Frm.Picture1.Width
.LargeChange = .Max / 2
.Value = .Max / 2
End With
.Picture2.Top = (.Picture1.Height - Frm.Picture2.Height) / 2
Else
'图片的尺寸均小于等于图片框的尺寸
.VScroll1.Enabled = False
.HScroll1.Enabled = False
.Picture2.Left = (.Picture1.Width - Frm.Picture2.Width) / 2
.Picture2.Top = (.Picture1.Height - Frm.Picture2.Height) / 2
End If
End With
End Sub
点击下载---田草博客--PictureBox带滚动条
[本日志由 田草 于 2007-06-20 08:55 PM 编辑]
|
暂时没有评论
发表评论 - 不要忘了输入验证码哦! |