你也可以使用下面的代码禁止对MDI窗体最大化:
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 Long
Private Const SC_MAXIMIZE = &HF030
Private Const MF_BYCOMMAND = &H0&
Private Const WS_MAXIMIZEBOX = &H10000
Private Const GWL_EXSTYLE = (-20)
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 Long
Private Sub MDIForm_Load()
Dim hMenu As Long, Success As Long
hMenu = GetSystemMenu(hwnd, 0)
Success = DeleteMenu(hMenu, SC_MAXIMIZE, MF_BYCOMMAND)
Dim xl As Long
Me.Show
xl = GetWindowLong(hwnd, GWL_STYLE)
xl = xl And (Not WS_MAXIMIZEBOX)
SetWindowLong hwnd, GWL_STYLE, xl
End Sub
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 Long
Private Const SC_MAXIMIZE = &HF030
Private Const MF_BYCOMMAND = &H0&
Private Const WS_MAXIMIZEBOX = &H10000
Private Const GWL_EXSTYLE = (-20)
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 Long
Private Sub MDIForm_Load()
Dim hMenu As Long, Success As Long
hMenu = GetSystemMenu(hwnd, 0)
Success = DeleteMenu(hMenu, SC_MAXIMIZE, MF_BYCOMMAND)
Dim xl As Long
Me.Show
xl = GetWindowLong(hwnd, GWL_STYLE)
xl = xl And (Not WS_MAXIMIZEBOX)
SetWindowLong hwnd, GWL_STYLE, xl
End Sub
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货