首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

怎么保证窗体的放大缩小过程中高宽比例固定不变(高分)

2012-02-25 
如何保证窗体的放大缩小过程中高宽比例固定不变(高分求助)这是一个窗体内的控件能随窗体大小变化而随之变

如何保证窗体的放大缩小过程中高宽比例固定不变(高分求助)
这是一个窗体内的控件能随窗体大小变化而随之变化的代码,不足的是在窗体变化中无法保证控件(或窗体)的长宽比例不变,哪位高手能想个办法,不论窗体如何变大变小,保证其高宽的比例不会变.
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,呵呵

用代码慢慢写就好了

热点排行