代码如下:
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, Pos(2) * ScaleX, Pos(3) * ScaleY
Obj.Font.Size = ObjOldFont * FormName.ScaleHeight
Next i
Next Obj
On Error GoTo 0
End Sub
摘自:网络整理
相关文章参考:
※关于三个概念:ActiveX、OLE和COM
※注册ActiveX控件的几种方法(转) 分享※
※VB 单击ListView控件某列表头进行排序
与控件相关文章:
※VB表格控件总览与例程分析※
※VB 设置控件边框颜色(如:List、Text、Picture)※
※VB控件注册 - 利用资源文件将dll、ocx打包进exe文件
※做VB的,经常注册和反注册OCX控件和DLL链
※VB表格控件总览与例程分析
※根据窗体自动调整窗体内控件大小 注:实用,可以直接引用
※用户控件制作讲解与实例
※VB制作OCX控件的步骤
※【引用】窗口处理技巧大全 vb(窗体控件)
※VB让控件可以当标题栏拖动
※VB 调用腾讯截图控件CameraDLL.dll
※VB表格控件总览与例程分析
※VB表格控件总览与例程分析
※☆Mp3Play.ocx控件让音乐之声响起来
※为系统加载右键注册控件选项【VB 注册控件】
※VB中MsFlexGrid控件的使用细则
※点击MSFlexGrid数据控件的标题进行数据排序
相关文章参考:
★VB查找替代字符串的函数
★VB换行气泡提示类
★VB/VBA通用路径选择对话框
★ASCII码表0-255完整版 附详细注释
★VB的KeyAscii
★VB取得TextBox、RichTextBox光标所在的行和列(支持汉字)
★VB取得TextBox、RichTextBox光标所在的行和列(支持汉字)
★VB如何实现Undo(撤消)功能
★VB计算文本文件的行数
★VB获取快捷方式原文件路径
★微软 Small Basic 简体中文版 已经发布了
★VB操作Excel 非常详细 [网摘]
★VB如何判断文件正被占用/已被打开
★VB添加listbox 的水平卷动轴
★VB打开资源管理器并指定文件
★VB根据窗体自动调整窗体内控件大小 注:实用,可以直接引用
★VB中的指针技术
★Visual Basic编程常见问题及解答(1)
★Visual Basic编程常见问题及解答(2)
★Visual Basic编程常见问题及解答(3)
★VisualBasic变量、常数和数据类型及过程概述
★VB6的后期绑定和前期绑定
★VB用户控件制作讲解与实例
★VB制作OCX控件的步骤
★VB中FSO的调用的两种方法
★用VB操作EXCEL
★VB判断文件及目录的存在性
★VB网站(最新、经典源代码、技术文章、基础知识)
★VB得到指定文件夹下的文件列表
★用VB产生随机任意大小文件挤满硬盘
★VB文件的读写操作
★VB创建超链接 打开指定网站的几种方法
★VB 源码 删除重复行程序 函数
★VB 计算自己程序段所用时间
★VB 获取路径名各部分 (获取文件路径,获取文件名,获取文件扩展名)自编
★几行VB代码拿下注册表
★VB 在浏览器中打开指定网址
★VB窗口置顶
★vb在 ListBox 之中点击右键弹出菜单
更多精彩>>>