【VB技巧】VB控件随窗体高宽度变化

admin 2021年4月3日19:10:56评论26 views字数 1362阅读4分32秒阅读模式

VB控件随窗体高宽度变化

Option Explicit
Dim FormOWidth As Long, FormOHeight As Long '窗体原始宽度,原始高度
Private Sub ResizerInit(FormName As Form)  '在调用ResizerForm前先调用本函数
On Error Resume Next
Dim Obj As Control
FormOWidth = FormName.ScaleWidth
FormOHeight = FormName.ScaleHeight
For Each Obj In FormName
    Obj.Tag = Obj.Left & " " & Obj.Top & " " & Obj.Width & " " & Obj.Height & " "
Next Obj
End Sub
Private Sub ResizerForm(FormName As Form)  '按比例改变表单内各元件的大小,'在调用ResizerForm前先调用ResizerInit函数
On Error Resume Next
Dim Pos(4) As Double, i As Long, TempPos As Long, StartPos As Long, Obj As Control, ScaleX As Double, ScaleY As Double
ScaleX = FormName.ScaleWidth / FormOWidth '保存窗体宽度缩放比例
ScaleY = FormName.ScaleHeight / FormOHeight '保存窗体高度缩放比例
For Each Obj In FormName
    StartPos = 1
    For i = 0 To 4
        TempPos = InStr(StartPos, Obj.Tag, " ", vbTextCompare) '读取控件的原始位置与大小
            If TempPos > 0 Then
                Pos(i) = Mid(Obj.Tag, StartPos, TempPos - StartPos)
                StartPos = TempPos + 1
            Else
                Pos(i) = 0
            End If
        Obj.Move Pos(0) * ScaleX, Pos(1) * ScaleY, Pos(2) * ScaleX, Pos(3) * ScaleY '根据控件的原始位置及窗体改变大小的比例对控件重新定位与改变大小
    Next i
Next Obj
End Sub
Private Sub Form_Resize()
If FormOWidth 0 And FormOHeight 0 Then Call ResizerForm(Me) '窗体改变时改变控件
End Sub
Private Sub Form_Load()
Call ResizerInit(Me) '获取起始窗体控件尺寸
End Sub

文章来源于lcx.cc:【VB技巧】VB控件随窗体高宽度变化

相关推荐: 批量扫描互联网无线路由设备telnet,并获取WIFI密码

分享一个自己写的telnet获取wifi密码的脚本及WEB 一只猿 (我是猴子派来的彩笔) | 2015-03-14 16:48 比较老的漏洞WooYun: FAST MERCIRY路由器telnet另类入侵 读取WIFI密码通过telnet获取迅捷(FAST…

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年4月3日19:10:56
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   【VB技巧】VB控件随窗体高宽度变化https://cn-sec.com/archives/320134.html

发表评论

匿名网友 填写信息