如果你不想用无边窗品可以调用API
Private Declare Function GetSystemMenu Lib "User32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Private Declare Function RemoveMenu Lib "User32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
Private Declare Function DrawMenuBar Lib "User32" (ByVal hwnd As Long) As Long
Private Declare Function GetMenuItemCount Lib "User32" (ByVal hMenu As Long) As Long
Private Const MF_BYPOSITION = &H400&
Private Const MF_DISABLED = &H2&
Private Sub DisableX(Frm As Form)
Dim hMenu As Long, nCount As Long
hMenu = GetSystemMenu(Frm.hwnd, 0)
nCount = GetMenuItemCount(hMenu)
Call RemoveMenu(hMenu, nCount - 1, MF_DISABLED Or MF_BYPOSITION)
DrawMenuBar Frm.hwnd
End Sub
Private Sub Form_Load()
Call DisableX(Me)
End Sub
试一下这种效果是不是你想要的!
Private Declare Function GetSystemMenu Lib "user32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
Private Declare Function RemoveMenu Lib "user32" (ByVal hMenu As Long, ByVal nPosition As Long, ByVal wFlags As Long) As Long
Const MF_BYPOSITION = &H400&
Const MF_REMOVE = &H1000&
Const SC_CLOSE = &HF060
Const SC_MINIMIZE = &HF020&
Const SC_MAXIMIZE = &HF030
Private Sub Form_Load()
Dim hSysMenu As Long
hSysMenu = GetSystemMenu(Me.hwnd, False)
'使最大化按钮无效
RemoveMenu hSysMenu, SC_MAXIMIZE, MF_REMOVE
'使最小化按钮无效
RemoveMenu hSysMenu, SC_MINIMIZE, MF_REMOVE
'使关闭按钮无效,加上这局以后,别忘了自己实现退出
RemoveMenu hSysMenu, SC_CLOSE, MF_REMOVE
End Sub