



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山地土方回填合同范本
- 农场瓦房出售合同范本
- 购租赁材料合同范本
- 沙发工厂员工合同范本
- 舞台广告制作合同范本
- 水利堤坝施工合同范本
- 劳务搬运协议合同范本
- 社区学生安全知识培训课件
- 买车加价合同范本
- 户外农庄转让合同范本
- 在家劳动教育实践报告
- 医院节能培训课件
- 混凝土质量保证措施
- 烟气CEMS在线比对验收调试报告附表D.1-12计算公式(HJ-75-2017)
- 学生请假安全协议书
- 隐形眼镜项目风险管理分析
- 过敏性休克应急处置流程
- 2024年陕西省专业技术人员继续教育学习平台党史党纪专题学习考试答案
- 13电磁铁的应用(讲义)
- DBJ41T 256-2021 河南省海绵城市设计标准 河南省工程建设标准(住建厅版)
- 独家授权合同模板
评论
0/150
提交评论