



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
VB中控件位置大小自动适应窗体变化的三种模式详解.doc代码是无需更改的。第一种。就是最实用的,就是所有控件的width和height按比例随窗体变化,位置也是当然是按比例哦。控件的字体不变。如下复制到代码: 改比例,字体不该。最实用Option ExplicitPrivate 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 0End 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 0End Sub第二种,只位置就是控件的left和top随着变。其他都不变。如果变化大了不好看。如下复制:Option Explicit Private ObjOldWidth As Long 保存窗体的原始宽度 Private ObjOldHeight As Long 保存窗体的原始高度 Private ObjOldFont As Single 保存窗体的原始字体比Private Sub Form_Resize() 确保窗体改变时控件随之改变 Call ResizeForm(Me) End Sub Private Sub Form_Load() 在程序装入时必须加入 Call ResizeInit(Me) End Sub 在调用ResizeForm前先调用本函数 Public Sub ResizeInit(FormName As Form) Dim Obj As Control ObjOldWidth = FormName.ScaleWidth ObjOldHeight = FormName.ScaleHeight ObjOldFont = FormName.Font.Size / ObjOldHeight 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 / ObjOldWidth 保存窗体宽度缩放比例 ScaleY = FormName.ScaleHeight / ObjOldHeight 保存窗体高度缩放比例 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 Next i Next Obj End Sub第三种,就是所有的都按比例。包括大小。字体,位置,就像放大镜的感觉。复制如下:Option Explicit Private ObjOldWidth As Long 保存窗体的原始宽度 Private ObjOldHeight As Long 保存窗体的原始高度 Private ObjOldFont As Single 保存窗体的原始字体比窗体部分Private Sub Form_Resize() 确保窗体改变时控件随之改变 Call ResizeForm(Me) End Sub Private Sub Form_Load() 在程序装入时必须加入 Call ResizeInit(Me) End Sub 在调用ResizeForm前先调用本函数 Public Sub ResizeInit(FormName As Form) Dim Obj As Control ObjOldWidth = FormName.ScaleWidth ObjOldHeight = FormName.ScaleHeight ObjOldFont = FormName.Font.Size / ObjOldHeight 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 / ObjOldWidth 保存窗体宽度缩放比例 ScaleY = FormName.ScaleHeight / ObjOldHeight 保存窗体高度缩放比例 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 E
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- smtp是什么邮件的协议书
- 活动16 探究深圳荔枝说课稿-2023-2024学年小学劳动一年级北师大·深圳报业版《劳动实践指导手册》(主编:韩震)
- 网络传输协议书有哪些
- 2025-2030亲子共读产品的内容创新与用户粘性分析
- 职业发展咨询方案价格
- 2025-2030乳品添加剂行业产能过剩预警与应对策略报告
- 2025-2030乳品氧化抑制剂作用机理及产品有效性验证报告
- 2025-2030临床检验中心连锁化经营模式与市场扩张战略分析报告
- 2025-2030中国鲜啤酒进口市场现状及贸易壁垒应对策略分析报告
- 2025-2030中国高端啤酒市场竞争格局与品牌定位策略对比研究报告
- 南海特产与美食课件
- 《三国演义》中的心理描写:以司马懿为例
- 迪尔凯姆社会学主义的巨擎汇总课件
- 家庭经济困难学生认定申请表
- 血栓性血小板减少性紫癜ttp汇编课件
- 阀门安装及阀门安装施工方案
- 大学数学《实变函数》电子教案
- YY/T 0640-2008无源外科植入物通用要求
- GB/T 2637-2016安瓿
- 数轴上的动点问题课件
- 省级公开课(一等奖)雨巷-戴望舒课件
评论
0/150
提交评论