哪位大侠能告诉我,在VB中如何让窗体的大小随着显示的尺寸或者分辨率的调整而自动调整大小。
解决方案 »
- 同一行文本 按标记进行前后调换顺序 有点复杂 求大大们帮忙
- 请教各位高手如何获得某个文件名!
- 如何从鑫网通达信的日线数据中读取收盘数据
- 在MsAgent控件上做出右键菜单啊
- 我有一个数据库文件,它的扩展名是:*.db的。现在我要把它里面的数据导出来,请问怎样做。
- VB调用汇编编译器,求助呀!
- 怎么呼出开始菜单?真给分!
- 请问下边的代码为什么不能下载文件?
- @@@@@@@@@请问不用ASP、CGI、PHP,而用JAVA Script或者VBScript能否实现自制留言榜?@@@@@@@@@
- 难道就没有一个合适的答案吗?
- VB6.0调用存储过程时提示Timeout expired,以前都很正常,现在突然冒出这个问题来了,急!
- 关于sql取最大日期
需要先用函数检测当前的屏幕的分辨率,然后将程序窗体尺寸定义为当前屏幕尺寸即可。
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