VB中控件位置大小自动适应窗体转变的三种模式详解.docx
- 文档编号:2243641
- 上传时间:2022-10-28
- 格式:DOCX
- 页数:6
- 大小:15.09KB
VB中控件位置大小自动适应窗体转变的三种模式详解.docx
《VB中控件位置大小自动适应窗体转变的三种模式详解.docx》由会员分享,可在线阅读,更多相关《VB中控件位置大小自动适应窗体转变的三种模式详解.docx(6页珍藏版)》请在冰豆网上搜索。
VB中控件位置大小自动适应窗体转变的三种模式详解
VB中控件位置大小自动适应窗体转变的三种模式详解.doc
代码是无需更改的。
第一种。
确实是最有效的,确实是所有控件的width和height按比例随窗体转变,位置也是固然是按比例哦。
控件的字体不变。
如下复制到代码:
'改比例,字体不该。
最有效
OptionExplicit
PrivateFormOldWidthAsLong'保存窗体的原始宽度
PrivateFormOldHeightAsLong'保存窗体的原始高度
PrivateSubForm_Load()
CallResizeInit(Me)'在程序装入时必须加入
EndSub
PrivateSubForm_Resize()
CallResizeForm(Me)'确保窗体改变时控件随之改变
EndSub
'在调用ResizeForm前先调用本函数
PublicSubResizeInit(FormNameAsForm)
DimObjAsControl
FormOldWidth=
FormOldHeight=
OnErrorResumeNext
ForEachObjInFormName
=&""&&""&&""&&""
NextObj
OnErrorGoTo0
EndSub
'按比例改变表单内各元件的大小,在挪用ReSizeForm前先挪用ReSizeInit函数
PublicSubResizeForm(FormNameAsForm)
DimPos(4)AsDouble
DimiAsLong,TempPosAsLong,StartPosAsLong
DimObjAsControl
DimScaleXAsDouble,ScaleYAsDouble
ScaleX=/FormOldWidth'保留窗体宽度缩放比例
ScaleY=/FormOldHeight'保留窗体高度缩放比例
OnErrorResumeNext
ForEachObjInFormName
StartPos=1
Fori=0To4
'读取控件的原始位置与大小
TempPos=InStr(StartPos,,"",vbTextCompare)
IfTempPos>0Then
Pos(i)=Mid,StartPos,TempPos-StartPos)
StartPos=TempPos+1
Else
Pos(i)=0
EndIf
'依照控件的原始位置及窗体改变大小的比例对控件从头定位与改变大小
Pos(0)*ScaleX,Pos
(1)*ScaleY,Pos
(2)*ScaleX,Pos(3)*ScaleY
Nexti
NextObj
OnErrorGoTo0
EndSub
第二种,只位置确实是控件的left和top随着变。
其他都不变。
假设是转变大了不行看。
如下复制:
OptionExplicit
PrivateObjOldWidthAsLong'保存窗体的原始宽度
PrivateObjOldHeightAsLong'保存窗体的原始高度
PrivateObjOldFontAsSingle'保存窗体的原始字体比
PrivateSubForm_Resize()
'确保窗体改变时控件随之改变
CallResizeForm(Me)
EndSub
PrivateSubForm_Load()
'在程序装入时必需加入
CallResizeInit(Me)
EndSub
''在挪用ResizeForm前先挪用本函数
PublicSubResizeInit(FormNameAsForm)
DimObjAsControl
ObjOldWidth=
ObjOldHeight=
ObjOldFont=/ObjOldHeight
OnErrorResumeNext
ForEachObjInFormName
=&""&&""&&""&&""
NextObj
OnErrorGoTo0
EndSub
'按比例改变表单内各元件的大小,
'在调用ReSizeForm前先调用ReSizeInit函数
PublicSubResizeForm(FormNameAsForm)
DimPos(4)AsDouble
DimiAsLong,TempPosAsLong,StartPosAsLong
DimObjAsControl
DimScaleXAsDouble,ScaleYAsDouble
ScaleX=/ObjOldWidth
'保存窗体宽度缩放比例
ScaleY=/ObjOldHeight
'保存窗体高度缩放比例
OnErrorResumeNext
ForEachObjInFormName
StartPos=1
Fori=0To4
'读取控件的原始位置与大小
TempPos=InStr(StartPos,,"",vbTextCompare)
IfTempPos>0Then
Pos(i)=Mid,StartPos,TempPos-StartPos)
StartPos=TempPos+1
Else
Pos(i)=0
EndIf
'依照控件的原始位置及窗体改变大
'小的比例对控件重新定位与改变大小
Pos(0)*ScaleX,Pos
(1)*ScaleY
Nexti
NextObj
EndSub
第三种,确实是所有的都按比例。
包括大小。
字体,位置,就像放大镜的感觉。
复制如下:
OptionExplicit
PrivateObjOldWidthAsLong'保存窗体的原始宽度
PrivateObjOldHeightAsLong'保存窗体的原始高度
PrivateObjOldFontAsSingle'保存窗体的原始字体比
'窗体部分
PrivateSubForm_Resize()
'确保窗体改变时控件随之改变
CallResizeForm(Me)
EndSub
PrivateSubForm_Load()
'在程序装入时必须加入
CallResizeInit(Me)
EndSub
''在挪用ResizeForm前先挪用本函数
PublicSubResizeInit(FormNameAsForm)
DimObjAsControl
ObjOldWidth=
ObjOldHeight=
ObjOldFont=/ObjOldHeight
OnErrorResumeNext
ForEachObjInFormName
=&""&&""&&""&&""
NextObj
OnErrorGoTo0
EndSub
'按比例改变表单内各元件的大小,
'在调用ReSizeForm前先调用ReSizeInit函数
PublicSubResizeForm(FormNameAsForm)
DimPos(4)AsDouble
DimiAsLong,TempPosAsLong,StartPosAsLong
DimObjAsControl
DimScaleXAsDouble,ScaleYAsDouble
ScaleX=/ObjOldWidth
'保存窗体宽度缩放比例
ScaleY=/ObjOldHeight
'保存窗体高度缩放比例
OnErrorResumeNext
ForEachObjInFormName
StartPos=1
Fori=0To4
'读取控件的原始位置与大小
TempPos=InStr(StartPos,,"",vbTextCompare)
IfTempPos>0Then
Pos(i)=Mid,StartPos,TempPos-StartPos)
StartPos=TempPos+1
Else
Pos(i)=0
EndIf
'依照控件的原始位置及窗体改变大
'小的比例对控件重新定位与改变大小
Pos(0)*ScaleX,Pos
(1)*ScaleY,Pos
(2)*ScaleX,Pos(3)*ScaleY
=ObjOldFont*
Nexti
NextObj
EndSub
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 控件 位置 大小 自动 适应 窗体 转变 模式 详解