首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

关于窗体的有关问题

2012-02-14 
关于窗体的问题哪位大侠能告诉我,在VB中如何让窗体的大小随着显示的尺寸或者分辨率的调整而自动调整大小。[

关于窗体的问题
哪位大侠能告诉我,在VB中如何让窗体的大小随着显示的尺寸或者分辨率的调整而自动调整大小。

[解决办法]
调用API
[解决办法]
调用api即可实现。
需要先用函数检测当前的屏幕的分辨率,然后将程序窗体尺寸定义为当前屏幕尺寸即可。
[解决办法]
那些只是虚话,比较难以做到,偶也碰到这样的问题,解决办法如下:
1.如果觉得在1024*768分辨率下,你的窗体大小不能放下你的控件时,把你的方便率调到最大(液晶显示器可调到1280*1024),偶就是这样做的,这样可以放下所有的控件;
2.在上述方便率下,在空白窗体上加上一个picture或者frame控件与窗体同样大,并在右侧和下面加上vscroll和hscroll控件;
3.把你要添加的所有控件放到picture或者frame控件——这个容器内,再到低分辩率内调试程序代码,如果现实不全用vscroll和hscroll控件分别拉开就可以了;
4.在上述方法下实现的功能类似一个网页浏揽器一样,把picture或者frame控件——这个容器内的所有控件都能看到了!

——上面写的思路有的乱,偶也是解决了很久,发了很多分分才解决的很好的:)

还有你说的“自动调整大小。”——网上有这样的代码,但是你所添加的第三方控件就不能自动调整,我的mschart就调整不了,非常麻烦。常用的比如text、label等控件,自动调整起来还是可以的!


楼主想要代码——可要多发分噢——嘿嘿
[解决办法]


引用高手的代码
lihonggen0(李洪根,MS MVP,标准答案来了)回复于 2003-04-22 11:07:30 得分 40
在Form_Load中调用ResizeInit
在Form_Resize中调用ResizeForm



'写成模块ModFormResize
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

热点排行