在使用WebBrowser制作一个简易浏览器时,当请求的页面是一个文件,需要下载时,会弹出Windows自带的下载对话框。请问怎样取消这个对话框,然后调用自己的下载窗口?谢谢!

解决方案 »

  1.   

    标准模块,你只需要改变消息常数就可以了
    Option Explicit
     
    Public Const GWL_WNDPROC = (-4)
    Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long) As Long
    Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hWnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
     
    Public WinProc   As Long
    Public Const WM_PASTE = &H302
     
    Public Sub RUNLoad(ByVal Wnd As Long)
           WinProc = GetWindowLong(Wnd, GWL_WNDPROC)
           SetWindowLong Wnd, GWL_WNDPROC, AddressOf WndProc
    End Sub
     
    Public Sub RunUnload(ByVal Wnd As Long)
           SetWindowLong Wnd, GWL_WNDPROC, WinProc
           WinProc = 0
    End Sub
     
    Function WndProc(ByVal hWnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
           If Msg = WM_PASTE Then
                  xxx
           Else
                   WndProc = CallWindowProc(WinProc, hWnd, Msg, wParam, lParam)
           End If
    End Function