[分享]
vba窗体添加最大化最小化按钮,并且可以运行时调整大小
网上很多资料并没有区分vb和vba,vb窗体的borderstyle属性可以设置为可调,但vba只有两个选项都是不可调的。 开始不能理解ms为什么要这样做,但最终还是接受了 现在有了这段小代码,嘿嘿,一切又变得简单了,ms也就那点小心思 Option Explicit Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Private Const GWL_STYLE = (-16) Private Const WS_THICKFRAME As Long = &H40000 ’(恢复大小) Private Const WS_MINIMIZEBOX As Long = &H20000 ’(最小化) Private Const WS_MAXIMIZEBOX As Long = &H10000 ’(最大化) Private Sub UserForm_Initialize() Dim hWndForm As Long Dim IStyle As Long hWndForm = FindWindow("ThunderDFrame", Me.Caption) IStyle = GetWindowLong(hWndForm, GWL_STYLE) IStyle = IStyle Or WS_THICKFRAME ’还原 IStyle = IStyle Or WS_MINIMIZEBOX ’最小化 IStyle = IStyle Or WS_MAXIMIZEBOX ’最大化 SetWindowLong hWndForm, GWL_STYLE, IStyle End Sub ,在窗体代码中加上以上这段,ok搞定! |