to : jennyvenus() 我对 SetWindowLong 这上API不是很熟悉,你能详细点吗?
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As LongPrivate Const GWL_STYLE = (-16)Private Const WS_MAXIMIZEBOX = &H10000 Private Const WS_MINIMIZEBOX = &H20000 Private Const WS_THICKFRAME = &H40000 Private Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As Long, ByVal bRevert As Long) As Long Private Declare Function DeleteMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As LongPrivate Const SC_MAXIMIZE = &HF030&Private Const MF_BYCOMMAND = &H0&Private Sub MDIForm_Load() Dim TempLng As Long
TempLng = GetWindowLong(Me.hWnd, GWL_STYLE) 'TempLng = TempLng And Not WS_MINIMIZEBOX '隐藏最小化 TempLng = TempLng And Not WS_MAXIMIZEBOX '禁用最大化 TempLng = TempLng And Not WS_THICKFRAME '禁用可改变大小的边框 SetWindowLong Me.hWnd, GWL_STYLE, TempLng
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As LongPrivate Const GWL_STYLE = (-16)Private Const WS_MAXIMIZEBOX = &H10000
Private Const WS_MINIMIZEBOX = &H20000
Private Const WS_THICKFRAME = &H40000
Private Declare Function GetSystemMenu Lib "user32" (ByVal hWnd As Long, ByVal bRevert As Long) As Long
Private Declare Function DeleteMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As LongPrivate Const SC_MAXIMIZE = &HF030&Private Const MF_BYCOMMAND = &H0&Private Sub MDIForm_Load()
Dim TempLng As Long
TempLng = GetWindowLong(Me.hWnd, GWL_STYLE)
'TempLng = TempLng And Not WS_MINIMIZEBOX '隐藏最小化
TempLng = TempLng And Not WS_MAXIMIZEBOX '禁用最大化
TempLng = TempLng And Not WS_THICKFRAME '禁用可改变大小的边框
SetWindowLong Me.hWnd, GWL_STYLE, TempLng
TempLng = GetSystemMenu(Me.hWnd, 0)
DeleteMenu TempLng, SC_MAXIMIZE, MF_BYCOMMAND
End Sub