窗体失去焦点的时候怎么控制的啊  
  我要的是 我单击窗体外面的随便一个地方后要窗体本身要隐藏呢....事件怎么写啊 因为我单击的地方是窗体外面  所以 我窗体里面的代码没反映了  
请各位大哥帮帮

解决方案 »

  1.   

    在窗体的LOSTFOCUS事件中写隐藏窗体的语句
      

  2.   

    hook API
    WM_Mouse_LL = 14
    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
      

  3.   

    由于VB窗体自带的LostFocus,不能够捕获到点击程序外部导致的失去焦点的消息,需要用到API
    建立Module1,放以下代码
    ========================================================================
    Option ExplicitPublic Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As LongPublic Declare Function DefWindowProc Lib "user32" Alias "DefWindowProcA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Integer, ByVal lParam As Long) As LongPublic 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 LongPublic Const WM_NCACTIVATE = &H86
    Public Const GWL_WNDPROC = (-4)
    Public OldWndProc&Public Function Hook&(ByVal hWnd1&)
    OldWndProc = SetWindowLong(hWnd1, GWL_WNDPROC, AddressOf NewWndProc)
    Hook = OldWndProc
    End FunctionPublic Sub UnHook(ByVal hWnd1&)
    SetWindowLong hWnd1, GWL_WNDPROC, OldWndProc
    End SubPublic Function NewWndProc&(ByVal hWnd1&, ByVal uMsg&, ByVal wParam&, ByVal lParam&)
    If uMsg = WM_NCACTIVATE Then
    If wParam = 0 Then '失去焦点
    Form1.Caption = "失去焦点"
    'Form1.Hide  '这句是隐藏窗体语句,需要把它的注释去掉
    '在这里加入在失去焦点时想要执行的代码
    Else
    Form1.Caption = "得到焦点"
    '在这里加入在得到焦点时想要执行的代码
    End If
    End If
    NewWndProc = CallWindowProc(OldWndProc, hWnd1, uMsg, wParam, lParam)
    End Function
    建立Form
    ======================================
    Option ExplicitPrivate Sub Form_Load()
    Hook Form1.hwnd
    End SubPrivate Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    UnHook Form1.hwnd
    End Sub