在form_unload事件里写如下语句: me.hide cancel=1 不过最好有一个标志量控制一下,何时关闭,方法是:(仍在form_unload里) if flag=true then cancel=1'不关闭 me.hide end
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) Cancel = 1 Me.Hide 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 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 SubPrivate Sub Form_Load() Call DisableX(Me) End Sub
Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) Cancel = True End Sub
在form-load事件中调用: Sub DisableX(Frm As Form) '去掉子窗体的关闭按钮. Dim hMenu As Long, nCount As Long '获得窗口系统菜单的菜单句柄 hMenu = GetSystemMenu(Frm.hwnd, 0) '得到hMenu指定的菜单的菜单项数目 nCount = GetMenuItemCount(hMenu) '将系统菜单的最后一个菜单项移走(最后一个菜单项是 'Close') Call RemoveMenu(hMenu, nCount - 1, MF_DISABLED Or MF_BYPOSITION) '重画系统菜单 DrawMenuBar Frm.hwnd End Sub以上资料系网友提供
在form-load中调用 Sub DisableX(Frm As Form) '去掉子窗体的关闭按钮. Dim hMenu As Long, nCount As Long '获得窗口系统菜单的菜单句柄 hMenu = GetSystemMenu(Frm.hwnd, 0) '得到hMenu指定的菜单的菜单项数目 nCount = GetMenuItemCount(hMenu) '将系统菜单的最后一个菜单项移走(最后一个菜单项是 'Close') Call RemoveMenu(hMenu, nCount - 1, MF_DISABLED Or MF_BYPOSITION) '重画系统菜单 DrawMenuBar Frm.hwnd End Sub 以上系网友提供
或在queryunload事件里写cancel=1
me.hide
cancel=1
不过最好有一个标志量控制一下,何时关闭,方法是:(仍在form_unload里)
if flag=true then
cancel=1'不关闭
me.hide
end
Cancel = 1
Me.Hide
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
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 SubPrivate Sub Form_Load()
Call DisableX(Me)
End Sub
Cancel = True
End Sub
Sub DisableX(Frm As Form)
'去掉子窗体的关闭按钮.
Dim hMenu As Long, nCount As Long '获得窗口系统菜单的菜单句柄
hMenu = GetSystemMenu(Frm.hwnd, 0)
'得到hMenu指定的菜单的菜单项数目
nCount = GetMenuItemCount(hMenu) '将系统菜单的最后一个菜单项移走(最后一个菜单项是 'Close')
Call RemoveMenu(hMenu, nCount - 1, MF_DISABLED Or MF_BYPOSITION)
'重画系统菜单
DrawMenuBar Frm.hwnd
End Sub以上资料系网友提供
Sub DisableX(Frm As Form)
'去掉子窗体的关闭按钮.
Dim hMenu As Long, nCount As Long '获得窗口系统菜单的菜单句柄
hMenu = GetSystemMenu(Frm.hwnd, 0)
'得到hMenu指定的菜单的菜单项数目
nCount = GetMenuItemCount(hMenu) '将系统菜单的最后一个菜单项移走(最后一个菜单项是 'Close')
Call RemoveMenu(hMenu, nCount - 1, MF_DISABLED Or MF_BYPOSITION)
'重画系统菜单
DrawMenuBar Frm.hwnd
End Sub
以上系网友提供