发布网友 发布时间:2022-04-23 09:23
共5个回答
热心网友 时间:2023-10-09 10:27
比窗体小的图片可以不用理
比窗体大的图片
先计算窗体的长宽比 再相应将将图片按长宽比缩放即可
建议你最好自己写一个子过程 将图片控件作为形参传入 这样就可以通用地对所有图片控件进行自动适应的生效
比如下面这个子过程
传入形参就是一个image控件名 一个窗体名
Private Sub Command1_Click()
Call ZoomImages(Image1, Me, True)
End Sub
Sub ZoomImages(objImg As image, objFrm As Form, Optional ByVal isCenter As Boolean = False)
Dim zoomScale# '缩放比率
objImg.Stretch = True
If objImg.ToolTipText <> "" Then 'InStr(objImg.ToolTipText, "$") <> 0 And
objImg.Width = CSng(Mid$(objImg.ToolTipText, 1, InStr(objImg.ToolTipText, "$") - 1))
objImg.Height = CSng(Mid$(objImg.ToolTipText, InStr(objImg.ToolTipText, "$") + 1))
objImg.ToolTipText = ""
If isCenter And objImg.Width < objFrm.Width And objImg.Height < objFrm.Height Then '判断是否居中
objImg.Top = (objFrm.Height - objImg.Height) / 2
objImg.Left = (objFrm.Width - objImg.Width) / 2
End If
Else
objImg.ToolTipText = objImg.Width & "$" & objImg.Height '记录初始大小 以备还原时读取
'方法①
' zoomScale = IIf(objImg.Width > objImg.Height, objFrm.Width / objImg.Width, objFrm.Height / objImg.Height)
' objImg.Stretch = False
' objImg.Height = objImg.Height * zoomScale - 405
' objImg.Width = objImg.Width * zoomScale - 120
' objImg.Stretch = True
' objImg.Top = 0
' objImg.Left = 0
'方法②
objImg.Width = ScaleWidth
objImg.Height = ScaleHeight
objImg.Left = ScaleLeft
objImg.Top = ScaleTop
End If
'objImg.Stretch = False
End Sub
热心网友 时间:2023-10-09 10:27
好说:
加入一个Image.
在它的picture属性里找一张你想要的图片.
把它的stretchy设置为true
然后编写代码:
Private Sub Form_Load()
Image1.Left = ScaleLeft
Image1.Top = ScaleTop
End Sub
Private Sub Form_Resize()
Image1.Width = ScaleWidth
Image1.Height = ScaleHeight
End Sub
你就可以随意调整图片的大小了.
我现在才知道.VB是这么好玩!跟别人回答问题,很兴奋!!!谢谢你给我机会.呵.
热心网友 时间:2023-10-09 10:28
用image控件,设置开始时与窗体一样大就好了,stretch设置为true
image1.height=(me.height-200)/2
image1.top=100
image1.width=(me.width-200)/2
image1.left=100
就可以了
秋色烽火的太复杂了,不敢恭维。。。
热心网友 时间:2023-10-09 10:28
可以,在图像里设置长宽就可以了
热心网友 时间:2023-10-09 10:29
1楼的简单
2楼的专业~~~
你都可以采纳