使用Windows API调整Userform和Multipage的大小

时间:2017-12-21 00:42:29

标签: vba excel-vba winapi userform multipage

我不熟悉Windows API。我复制了一个关于使用W.API调整用户窗体大小的代码,但是我还希望在调整用户窗体大小时将多边形宽度绑定到用户窗体。我还可以使用W.API来进行多页或任何其他对象吗?或它仅用于活动窗口?

这是代码。

Private Sub MakeFormResizable()

Dim lStyle As Long
Dim hWnd As Long
Dim RetVal

Const WS_THICKFRAME = &H40000
Const GWL_STYLE As Long = (-16)

hWnd = GetActiveWindow


lStyle = GetWindowLong(hWnd, GWL_STYLE) Or WS_THICKFRAME


RetVal = SetWindowLong(hWnd, GWL_STYLE, lStyle)


SetLastError 0 
End Sub

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以通过设置高度和宽度属性来更改用户表单的宽度和高度。给定一个名为" frmDemo"的用户形式使用称为" mpFred"的多页控件然后这会改变它

Sub MakeBigger()
    frmDemo.width = frmdemo.width + 100 'increase by 100 points
    frmDemo.Height = 650 'set to specific value
    frmDemo.Controls("mpfred").width =frmDemo.Controls("mpfred").width + 100
    frmDemo.Controls("mpfred").height = frmdemo,height - 20  'slightly shorter than the form

End Sub