为什么某些控件在进行“使程序界面随显示器分辨率大小变化”的程序执行时,位置并没有改变?

newyc 2003-10-15 12:27:33
这些控件比如有ComboBox、line等,是不是某些属性我设置的不对的原因,百思不得其解!


下面是我用的两个函数
在form_load中调用函数ResizeInit
在form_resize中调用函数ResizeForm



'模块内容开始
public FormOldWidth as long
public FormOldHeight as long

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
End Sub

public Sub ResizeForm(FormName as form) '当窗体大小发生变化时,各控件尺寸及位置作相应变化
Dim Pos '控件原先尺寸、位置
Dim I As Long '计数器
Dim Obj As Control '遍历窗体内控件
Dim ScaleX As Double, ScaleY As Double '缩放比例

ScaleX = Me.ScaleWidth / FormOldWidth

ScaleY = Me.ScaleHeight / FormOldHeight

On Error Resume Next

For Each Obj In Me
Pos = Split(Obj.Tag, " ", , vbTextCompare)
Obj.Move Pos(0) * ScaleX, Pos(1) * ScaleY, Pos(2) * ScaleX, Pos(3) * ScaleY
Next Obj
End Sub
...全文
68 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
kmzs 2003-10-15
  • 打赏
  • 举报
回复
这些控件可能有最小的大小
skywalker1997 2003-10-15
  • 打赏
  • 举报
回复
设置窗体的属性
newyc 2003-10-15
  • 打赏
  • 举报
回复
不是呀,我是把原有的控件变大呀,并不是变小。我以前的分辨率是800*600,现在要改为1024*768

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧