在VB窗体的属性中可以设定窗体是否有“最大化”和“最小化”按钮,我想让窗体没有“关闭”按钮,怎样才能实现?谢谢!

解决方案 »

  1.   

    Private Declare Function GetSystemMenu Lib "USER32" (ByVal hwnd As Long, ByVal bRevert As Long) As Long
    Private Declare Function GetMenuItemCount Lib "USER32" (ByVal hMenu 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 Const MF_BYPOSITION = &H400&
    Private Const MF_REMOVE = &H1000&
     
    Private Sub DisableX()
             Dim hMenu, nCount, LO     As Long
             hMenu = GetSystemMenu(Me.hwnd, 0)
             nCount = GetMenuItemCount(hMenu)
             LO = RemoveMenu(hMenu, nCount - 1, MF_REMOVE Or MF_BYPOSITION)
             LO = RemoveMenu(hMenu, nCount - 2, MF_REMOVE Or MF_BYPOSITION)
    End Sub
     
    Private Sub Form_Load()
    Call DisableX
    End Sub
      

  2.   

    或者用以下代码禁用窗体右上角的关闭按钮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 LongPrivate Sub Form_Load()
        RemoveMenu GetSystemMenu(Me.hwnd, 0), &HF060, 0
    End Sub
      

  3.   

    再或者这样,在关闭窗体前取消关闭操作Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
        Cancel = Not (CBool(UnloadMode))
    End Sub要关闭时可用代码unload me关闭