打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
控件大小随窗口大小变化
代码如下:



'VB控件随窗体大小而变化
'
当窗体大小改变时,如何动态的改变控件的大小是许多VB程序员头痛的
'
事。有的人设置窗体Resizable但却不改变控件的大小;有的人则根据控件的
'
绝对位置与窗口大小相加减的办法来重新定位控件与改变大小,这种办法比
'
较繁琐,且不可重用;当然也有人则限定窗口干脆不让改变。有没有一种简
'
便易行的办法?答案是肯定的,下面给出一个一劳永逸的办法,源程序如下:
'
模块
Option Explicit
Dim FormOldWidth As Long  '窗体旧的宽度值
Dim FormOldHeight As Long  '窗体旧的高度值
  
Public Sub ResizeInit(FormName As Form)
  Dim pCtl As Control

  '设置窗体旧的高度与宽度
  FormOldWidth = FormName.ScaleWidth
  FormOldHeight = FormName.ScaleHeight

  On Error Resume Next
  For Each pCtl In FormName
    '设置窗体中控件的Tag值(根据空间的位置和大小来设置)
  
    '返回或设置一个表达式,它存储程序需要的额外数据。
    '与其它属性不同,Visual Basic 不使用 Tag 属性的值;
    '可用该属性识别对象。
  
    pCtl.Tag = pCtl.Left & "   " & pCtl.Top & "   " & pCtl.Width & "   " & pCtl.Height & "   "
  Next pCtl
  On Error GoTo 0
End Sub

Public Sub ResizeForm(FormName As Form)
  Dim Pos(4) As Double
  Dim i As Long, tmpPos As Long, staPos As Long
  Dim pCtl As Control
  Dim ScaleX As Double, ScaleY As Double

  '保存窗体的宽度与高度缩放比例
  ScaleX = FormName.ScaleWidth / FormOldWidth
  ScaleY = FormName.ScaleHeight / FormOldHeight

  On Error Resume Next

  '变化窗体内的各控件
  For Each pCtl In FormName
    staPos = 1
    For i = 0 To 4 '位置和大小
      '取得控件的原始位置和大小
      tmpPos = InStr(staPos, pCtl.Tag, "   ", vbTextCompare)
      If tmpPos > 0 Then
        Pos(i) = Mid(pCtl.Tag, staPos, tmpPos - staPos)
        staPos = tmpPos + 1
      Else
        Pos(i) = 0
      End If
    
      '根据控件的原始位置及窗体改变大小的
      '比例对控件重新定位与改变大小
      pCtl.Move Pos(0) * ScaleX, Pos(1) * ScaleY, Pos(2) * ScaleX, Pos(3) * ScaleY
    Next i
  Next pCtl
  On Error GoTo 0
End Sub

'在窗体启动时,调用ResizeInit函数
'
以记录窗体中各控件的大小和位置
Private Sub Form_Load()
  Call ResizeInit(Me)
End Sub

'窗体大小发生变化时,根据窗体改变大小的比例
'
对窗体中各控件重新定位和改变大小。
Private Sub Form_Resize()
  Call ResizeForm(Me)
End Sub
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
vb窗体的控件随窗体变化自动调整大小
一劳永逸让VB自动改变控件大小
VB中控件大小随窗体大小变化而变化
自动调整控件大小
本例把一个位图加载到 ImageList
excel vba编程 典型实例.docx
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服