如果子窗体不是max的话,基本上很难!如果是max那么自动同步放大!
解决方案 »
- 紧急求助!!!VB+Access+Excel问题...... 恳请大家帮忙!!!
- 关于VB模拟多线程处理的一些问题
- 用vb实现中文朗读功能,在线等,急
- 急~用addnew怎么把记录一直插入到第一行或者最后一行
- VB里的Winsock如何接受Delphi里传来的stringList数据?
- VB制作的服务程序怎样与当前用户交互啊?
- 那里有VBOpenGL方面的资料!!
- 如何使前一个应用程序实例的窗口成为活动窗口?
- VB中如果用水晶报表作报表工具,你有更好的方法相联吗?
- 在WebBrowser里如何提交一个onclick事件呢?
- ic卡问题!!
- **********拜师学艺(一)************
=======================================
Private Sub MDIForm_Activate()
MDIForm_Resize
End Sub' Make the image fit the MDI form.
Private Sub MDIForm_Resize()
picStretched.Move 0, 0, _
ScaleWidth, ScaleHeight ' Copy the original picture into picStretched.
picStretched.PaintPicture _
picOriginal.Picture, _
0, 0, _
picStretched.ScaleWidth, _
picStretched.ScaleHeight, _
0, 0, _
picOriginal.ScaleWidth, _
picOriginal.ScaleHeight
' Set the MDI form's picture.
Picture = picStretched.Image
End Sub
问:MDIForm_Resize()
不行吗?
一般不用MDI。
Very Easy
VB就没有(除了picture等容器)
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 DoubleScaleX = 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
`根据控件的原始位置及窗体
所希望看到的效果。何况,有些控件的大小根本就不能变,例如COMBOBOX
的高度。我对于这个问题的解决方法是,为窗体上每个需要在RESIZE时变动的控件
定制其在窗体RESIZE时的行为。按比例变化只是行为方式的一种。当然,我的意思并不是在FORM_RESIZE事件中写很多代码。其实只要你把
这些操作封装在一个类模块中,由该类来接管FORM_RESIZE事件,那么就
可以在FORM_LOAD时为每个控件设定一下就可以了。