[VB]如何确定窗口内部区域大小

ZDNet软件频道 时间:2004-06-08 作者:Builder.com |  我要评论()
本文关键词:vb
通过Width 和Height属性,我们可以方便的设定窗口的大小,不过这个窗口是带有边框和标题栏的。那么如何精确的设置窗口内部区域的大小呢?
本文译自Builder.com,未经许可请勿转载

通过Width 和Height属性,我们可以方便的设定窗口的大小,不过这个窗口是带有边框和标题栏的。那么如何精确的设置窗口内部区域的大小呢(比如需要精确配合Picture Box控件的尺寸)?

也许你觉得通过调整窗体的ScaleWidth和ScaleHeight属性就可以实现上述目的,但实际上这是无效的,这些属性都无法改变窗体内部区域的大小。不过通过以下的方法,你可以指定窗体内部区域的实际尺寸:

1.       获取Form.Width 的值。(这是包括边框在内的窗体总宽度)

2.       获取 Form.ScaleWidth 的值。 (这是窗体内部的实际宽度)

3.       将第一个值减去第二个值。所得结果为窗体边框的总宽度,设其为deltaX。

4.       将所希望的内部宽度值加上deltaX。这就是最终符合要求的窗体宽度。

5.       将第四步的值赋给Form.Width 属性。

对于高度,也和上面的步骤类似。

1.       开启一个新的标准EXE项目。

2.       为窗体添加一个Picture Box 控件并设置AutoSize 属性为 True。这使得Picture Box控件可以根据内部装载的图片自动调整自身大小。

3.       将图片载入 Picture Box控件。

4.       将以下代码加入窗体的 Load事件中。

Private Sub Form_Load()

Dim deltaX As Single, deltaY As Single

Picture1.Move 0, 0
deltaX = Me.Width - Me.ScaleWidth
deltaY = Me.Height - Me.ScaleHeight
Me.Height = Picture1.Height + deltaY
Me.Width = Picture1.Width + deltaX

End Sub

当程序运行时,你会看到图片的左上角和窗体的左上角是一致的,并且窗体会将大小调整到和Picture Box一致。你可以通过鼠标调整窗体大小来检验上述代码的效果,可以看到,窗体的边框和Picture Box的边界是吻合的。

这种方法需要窗体的ScaleMode、 ScaleWidth以及ScaleHeight的默认值保持一致。因为窗体大小的计算涉及到默认情况下的ScaleWidth 和ScaleHeight值。


作者:Peter Aitken。自从Visual Basic 1.0版问世以来,Peter Aitken就一直在使用vb编程。他已经编写过很多关于VisualBasic以及其他计算机和编程方面的书籍和杂志文章了。


责任编辑:李宁

欢迎评论投稿

百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134