网站大量收购独家精品文档,联系QQ:2885784924

VB如何使控件位置和大小自动适应窗体变化的三种不同模式.docVIP

VB如何使控件位置和大小自动适应窗体变化的三种不同模式.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
VB如何使控件位置和大小自动适应窗体变化的三种不同模式,vb控件适应窗体大小,vb窗体透明控件不透明,vb窗体控件,c控件自动适应窗体,c窗体与控件适应屏幕,窗体控件,excel窗体控件,excel2013窗体控件,windows窗体控件库

VB如何使控件位置和大小自动适应窗体变化的三种不同模式 本人发现VB2008前版本使控件位置和大小自动适应窗体变化的提问很多。但回答的正确的不多。本人用vb6.0也遇到此问题。认真研究的一下。给出最正确的三种模式给大家借鉴。有更好方法可以在交流。代码是无需更改的。 第一种。就是最实用的,就是所有控件的width和height按比例随窗体变化,位置也是当然是按比例哦。控件的字体不变。如下复制到代码: 改比例,字体不该。最实用 Option Explicit Private FormOldWidth As Long 保存窗体的原始宽度 Private FormOldHeight As Long 保存窗体的原始高度 Private Sub Form_Load() Call ResizeInit(Me) 在程序装入时必须加入 End Sub Private Sub Form_Resize() Call ResizeForm(Me) 确保窗体改变时控件随之改变 End Sub 在调用ResizeForm前先调用本函数 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 按比例改变表单内各元件的大小,在调用ReSizeForm前先调用ReSizeInit函数 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) = 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 第二种,只位置就是控件的left和top随着变。其他都不变。如果变化大了不好看。如下复制: Option Explicit Private ObjOldWidth As Long 保存窗体的原始宽度 Private ObjOl

文档评论(0)

tianma2015 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档