vba中自由调整窗体大小方案:
通过添加一个标签(label),通过鼠标在标签上点击并移动来实时修改窗体大小.
先看下效果:
具体如下.
1.新建一个窗体.
\
2.在窗体的右下角添加一个标签,用来调整大小
3.设置标签的属性
设置主要属性
标题(Caption): o (字母O)
字体(Font): Marlett
鼠标指针(MousePointer):8 - fmMousePointerSizeNWSE
4 .添加窗体内代码
1 Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" _ 2 (ByVal lpClassName As String, ByVal lpWindowName As String) As Long 3 4 Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" _ 5 (ByVal hWnd As Long, ByVal nIndex As Long) As Long 6 7 Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" _ 8 (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long 9 10 Private Const GWL_STYLE As Long = (-16) 11 Private Const WS_MINIMIZEBOX As Long = &H20000 12 Private Const WS_MAXIMIZEBOX As Long = &H10000 13 14 Private Sub Label3_MouseMove(ByVal Button As Integer, ByVal Shift As Integer, ByVal X As Single, ByVal Y As Single) 15 16 '在文本框中显示当前窗体的宽度和高度 17 TextBox1.Value = Me.InsideWidth 18 TextBox2.Value = Me.InsideHeight 19 20 If Button = 1 Then '鼠标左键 21 22 '调整窗体大小 23 Me.Width = Me.Width + X 24 Me.Height = Me.Height + Y 25 End If 26 End Sub 27 28 Private Sub UserForm_Activate() 29 30 Dim lStyle As Long 31 Dim hWnd As Long 32 33 '为窗体添加最大化和最小化按钮 34 hWnd = FindWindow("ThunderDFrame", Me.Caption) 35 lStyle = GetWindowLong(hWnd, GWL_STYLE) 36 lStyle = lStyle Or WS_MINIMIZEBOX '最小化 37 lStyle = lStyle Or WS_MAXIMIZEBOX '最大化 38 SetWindowLong hWnd, GWL_STYLE, lStyle 39 End Sub 40 41 Private Sub UserForm_Resize() 42 43 '重新设定各控件位置 44 Label3.Left = Me.InsideWidth - Label3.Width 45 Label3.Top = Me.InsideHeight - Label3.Height 46 End Sub
标签:Me,VBA,UserForm,ByVal,Long,窗体,Private,lStyle From: https://www.cnblogs.com/zionlew/p/16726331.html