【发布时间】:2012-12-07 13:11:25
【问题描述】:
是否可以调整 vb6 内部窗体的大小,因为如果我使用 Form1.Height 或 Form1.Width 它包括窗口边框的高度和宽度,所以我只能在一个窗口主题中使用此代码(例如它在 WinXP 中工作得最好用XP主题,但是不能用经典主题的WinXP,太长了),有什么建议吗?
【问题讨论】:
是否可以调整 vb6 内部窗体的大小,因为如果我使用 Form1.Height 或 Form1.Width 它包括窗口边框的高度和宽度,所以我只能在一个窗口主题中使用此代码(例如它在 WinXP 中工作得最好用XP主题,但是不能用经典主题的WinXP,太长了),有什么建议吗?
【问题讨论】:
您可以将 Width(外部尺寸)与 ScaleWidth(内部尺寸)进行比较,以获得非客户端边框上的尺寸。同样,您可以将 Height 与 ScaleHeight 进行比较,以获得顶部和底部的非客户端大小。从中,您可以根据您想要的内部(客户区域)尺寸加上非客户尺寸来设置您的最终高度和宽度。
你的Form_Load:
Const DesiredClientHeight as Single = 3435
Const DesiredClientWidth as Single = 3345
Dim fNonClientHoriz As Single, fNonClientVert As Single
fNonClientHoriz = Me.Width - Me.ScaleWidth
fNonClientVert = Me.Height- Me.ScaleHeight
Me.Width = DesiredClientWidth + fNonClientHoriz
Me.Height = DesiredClientHeight + fNonClientVert
请注意,表单的宽度和高度始终以缇为单位,因此,如果您将缩放模式更改为缇以外的其他值,则需要考虑这一点。
【讨论】: