VB 控件随窗体缩放
2016-04-06 22:25
447 查看
Option Explicit
Private FormOldWidth As Long
Private FormOldHeight As Long
Private count1 As Integer
Public Sub ResizeInit(FormName As Form)
Dim Obj As Control
FormOldWidth = FormName.ScaleWidth
FormOldHeight = FormName.ScaleHeight
On Error Resume Next
For Each Obj In FormName
Obj.Tag = Obj.Left & " " & Obj.Top & " " & Obj.Width & " " & Obj.Height & " "
Next Obj
On Error GoTo 0
End Sub
Public Sub ResizeForm(FormName As Form)
Dim Pos(4) As Double
Dim i As Long, TempPos As Long, StartPos As Long
Dim Obj As Control
Dim ScaleX As Double, ScaleY As Double
ScaleX = FormName.ScaleWidth / FormOldWidth
ScaleY = FormName.ScaleHeight / FormOldHeight
On Error Resume Next
For Each Obj In FormName
StartPos = 1
For i = 0 To 4
TempPos = InStr(StartPos, Obj.Tag, " ", vbTextCompare)
If TempPos > 0 Then
Pos(i) = VBA.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
On Error GoTo 0
End Sub
Private Sub Form_Load()
Image1.Picture = LoadPicture(App.Path + "\logo.jpg")
Call ResizeInit(Me)
End Sub
Private Sub Form_Resize()
Call ResizeForm(Me)
End Sub
Private FormOldWidth As Long
Private FormOldHeight As Long
Private count1 As Integer
Public Sub ResizeInit(FormName As Form)
Dim Obj As Control
FormOldWidth = FormName.ScaleWidth
FormOldHeight = FormName.ScaleHeight
On Error Resume Next
For Each Obj In FormName
Obj.Tag = Obj.Left & " " & Obj.Top & " " & Obj.Width & " " & Obj.Height & " "
Next Obj
On Error GoTo 0
End Sub
Public Sub ResizeForm(FormName As Form)
Dim Pos(4) As Double
Dim i As Long, TempPos As Long, StartPos As Long
Dim Obj As Control
Dim ScaleX As Double, ScaleY As Double
ScaleX = FormName.ScaleWidth / FormOldWidth
ScaleY = FormName.ScaleHeight / FormOldHeight
On Error Resume Next
For Each Obj In FormName
StartPos = 1
For i = 0 To 4
TempPos = InStr(StartPos, Obj.Tag, " ", vbTextCompare)
If TempPos > 0 Then
Pos(i) = VBA.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
On Error GoTo 0
End Sub
Private Sub Form_Load()
Image1.Picture = LoadPicture(App.Path + "\logo.jpg")
Call ResizeInit(Me)
End Sub
Private Sub Form_Resize()
Call ResizeForm(Me)
End Sub
相关文章推荐
- vbs 脚本2
- vbs脚本
- VB 动态数组,文件读写
- 2014 .04 .06 navbar
- VBOX中的Ubuntu的安装和配置
- AB是一家?VAO与VBO
- VBA 复制工作簿内容
- 安装Orcale VBox虚拟机必须注意的问题
- VBS脚本常用经典代码收集
- VB中的排序问题 15个
- VB病毒
- Excel vba使用正则表达式处理联通官网导出的通话详单
- 关于vb 多任意数字大小排列问题
- VB.OCR.汉明距离
- How to play .rmvb files in Ubuntu
- VB 2010中Excel文件处理的一个奇怪问题
- 解决vbe6ext.olb不能被加载 内存溢出 问题
- VB中的空格函数
- s4:VB之如何更改排序的数字的数量
- S3:VB之15个数的排序(简化版)