msgbox 第3个参数,写成vbonlyOK,即可

解决方案 »

  1.   

    同nik_Amis(Azrael),建議自己做窗體!
      

  2.   

    自己做窗体是愚蠢的做法!用CBTHook很容易做到!
      

  3.   

    好象不可以﹐可以自己作個窗體作為box窗口。
      

  4.   

    我的这个就没有关闭按钮 
       MsgBox "err", vbInformation + vbYesNo
      

  5.   

    只有带Cancel按钮的msgbox窗口关闭按钮才会有效。
    只有两个值会出现Cancel按钮vbOKCancel和vbYesNoCancel。用CBTHook让它无效如下:
    '以下在Form
    Private Sub Form_Load()
    Call EnableHook
    MsgBox "Fool azrael,HAHA!", vbOKCancel
    Call FreeHook
    End Sub
    '以下在.Bas
    Declare Function SetWindowsHookEx Lib "User32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long
    Declare Function UnhookWindowsHookEx Lib "User32" (ByVal hHook As Long) As Long
    Declare Function CallNextHookEx Lib "User32" (ByVal hHook As Long, ByVal nCode As Long, ByVal wParam As Long, lParam As Any) As Long
    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 LongPublic Const HCBT_ACTIVATE = 5
    Public Const WH_CBT = 5
    Const MF_BYCOMMAND = &H0&
    Const SC_CLOSE = &HF060
    Public hHook As LongPublic Sub EnableHook()
    If hHook = 0 Then
       hHook = SetWindowsHookEx(WH_CBT, AddressOf HookProc, 0, App.ThreadID)
    End If
    End Sub
    Public Sub FreeHook()
    If hHook <> 0 Then
       Call UnhookWindowsHookEx(hHook)
       hHook = 0
    End If
    End Sub
    Public Function HookProc(ByVal nCode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Dim hMenu As Long
    If nCode < 0 Then
       HookProc = CallNextHookEx(hHook, nCode, wParam, lParam)
       Exit Function
    End If
    If nCode = HCBT_ACTIVATE Then
    hMenu = GetSystemMenu(wParam, 0)
    DeleteMenu hMenu, SC_CLOSE, MF_BYCOMMAND
    End If
    HookProc = 0
    End Function
      

  6.   

    使用API函数做....    用API函数做成系统消息弹出!可以屏蔽掉关闭按钮