form上的控件怎么能做到随form大小改变而按比例缩放?

Lucifer820 2005-12-01 02:56:29
再就是能自动适应显示器大小而改变全屏幕显示大小?
...全文
316 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
Lucifer820 2005-12-02
  • 打赏
  • 举报
回复
明白了,谢谢!
51365133 2005-12-02
  • 打赏
  • 举报
回复
Private Sub Form_Load()
Call Form_Resize
End Sub

Private Sub Form_Resize()
Command1.Top = Me.Top / 10
Command1.Left = Me.Left / 10
Command1.Height = Me.Height / 10
Command1.Width = Me.Width / 10

End Sub


就是这个意思,自己改吧
Lucifer820 2005-12-02
  • 打赏
  • 举报
回复
必须得加frame么?
starsrainmzl 2005-12-01
  • 打赏
  • 举报
回复
学习一下新思路!
zou19820704 2005-12-01
  • 打赏
  • 举报
回复
Private Sub Form_Resize()
Me.Frame1.Left = 0
Me.Frame1.Top = 0
Me.Frame1.Width = Me.Width/2
Me.Frame1.Height = Me.Height/2
End Sub
Lucifer820 2005-12-01
  • 打赏
  • 举报
回复
那没有bug的呢?
daisy8675 2005-12-01
  • 打赏
  • 举报
回复
那段代码用得烂了,可惜是有bug的,西西
bbhere 2005-12-01
  • 打赏
  • 举报
回复
给分前蹭一下
faysky2 2005-12-01
  • 打赏
  • 举报
回复
to: vbman2003(家人) ,累哦
点“主题”右边的“管理”。。。
vbman2003 2005-12-01
  • 打赏
  • 举报
回复
点本页右下方的“管理”
Lucifer820 2005-12-01
  • 打赏
  • 举报
回复
顺便问下?怎么给分?
Lucifer820 2005-12-01
  • 打赏
  • 举报
回复
万分感谢!
vbman2003 2005-12-01
  • 打赏
  • 举报
回复
这二天怎么好几个这样的问题
faysky2() 帖的累不累啊,呵呵
faysky2 2005-12-01
  • 打赏
  • 举报
回复

'以下代码写在标准模块中
Option Explicit
Private FormOldWidth As Long '保存窗体的原始宽度
Private FormOldHeight As Long '保存窗体的原始高度

'在调用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
'在调试时如果出现除数为零错误,是因为没有设定form的初值,请双击form1然后再测试,这个问题绝对不会在编译好的程序中出现
If FormOldWidth = 0 Then '防止该错误的产生
Exit Sub
End If
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

'窗体代码:

Private Sub Form_Load()
ResizeInit Me
End Sub

Private Sub Form_Resize()
ResizeForm Me
End Sub





7,763

社区成员

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

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