之前有一样的问题... Private Const WS_MAXIMIZEBOX As Long = &H10000 Private Const WS_THICKFRAME As Long = &H40000 Private Const WS_MINIMIZEBOX = &H20000 Private Const GWL_STYLE = (-16) Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As LongPrivate Sub MDIForm_Load() Dim TempLng As Long TempLng = GetWindowLong(Me.hwnd, GWL_STYLE) TempLng = TempLng And Not WS_MAXIMIZEBOX '最大化 TempLng = TempLng And Not WS_MINIMIZEBOX '最小化 TempLng = TempLng And Not WS_THICKFRAME '可改变大小的边框 SetWindowLong Me.hwnd, GWL_STYLE, TempLng End Sub
Private Const WS_MAXIMIZEBOX As Long = &H10000
Private Const WS_THICKFRAME As Long = &H40000
Private Const WS_MINIMIZEBOX = &H20000
Private Const GWL_STYLE = (-16)
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As LongPrivate Sub MDIForm_Load()
Dim TempLng As Long TempLng = GetWindowLong(Me.hwnd, GWL_STYLE)
TempLng = TempLng And Not WS_MAXIMIZEBOX '最大化
TempLng = TempLng And Not WS_MINIMIZEBOX '最小化
TempLng = TempLng And Not WS_THICKFRAME '可改变大小的边框
SetWindowLong Me.hwnd, GWL_STYLE, TempLng
End Sub
我试了一下,确实可以屏蔽掉MDI父窗体的可变大小。