如何保证窗体的放大缩小过程中高宽比例固定不变(高分求助)
这是一个窗体内的控件能随窗体大小变化而随之变化的代码,不足的是在窗体变化中无法保证控件(或窗体)的长宽比例不变,哪位高手能想个办法,不论窗体如何变大变小,保证其高宽的比例不会变.
Private Sub Form_Load()
form1.Height = Screen.Height / 3
form1.Width = Screen.Width / 5
End Sub
Private Sub Form_Resize()
Image1.Move 0, 0, ScaleWidth, ScaleHeight
End Sub
[解决办法]
Option Explicit
Dim FormOldWidth As Long
Dim FormOldHeight As Long
Private Sub Form_Load()
FormOldWidth = Me.ScaleWidth
FormOldHeight = Me.ScaleHeight
Dim Obj As Control 'Control是一个对象,表示所有 Visual Basic 内部控件的类名
For Each Obj In Me
'Tag返回或设置一个表达式用来存储程序中需要的额外数据。
Obj.Tag = Obj.Left & " " & Obj.Top & " " & Obj.Width & " " & Obj.Height & " "
Next Obj
End Sub
Private Sub Form_Resize()
Dim Pos
Dim Obj As Control
Dim ScaleX As Double
Dim ScaleY As Double
ScaleX = Me.ScaleWidth / FormOldWidth
ScaleY = Me.ScaleHeight / FormOldHeight
For Each Obj In Me
Pos = Split(Obj.Tag, " ")
If IsArray(Pos) Then _
Obj.Move Pos(0) * ScaleX, Pos(1) * ScaleY, Pos(2) * ScaleX, Pos(3) * ScaleY
Next Obj
End Sub
[解决办法]
http://vbnet.mvps.org/index.html?http://vbnet.mvps.org/api/constants/constsw.htm
[解决办法]
http://vbnet.mvps.org/index.html?code/subclass/aspectratio.htm
[解决办法]
用SizerOne吧
[解决办法]
sizeone不支持98,呵呵
用代码慢慢写就好了