怎样获得鼠标双击事件?

解决方案 »

  1.   

    给你罗列了一点窗口消息,你自己看看吧:
    =======================
    '''form代码:
    Private Sub Form_Load()
        prevWndProc = GetWindowLong(Me.hwnd, GWL_WNDPROC)
        SetWindowLong Me.hwnd, GWL_WNDPROC, AddressOf WndProc
    End SubPrivate Sub Form_Unload(Cancel As Integer)
        SetWindowLong Me.hwnd, GWL_WNDPROC, prevWndProc
    End Sub'''新建一个模块,代码:
    Declare Function Beep Lib "kernel32" (ByVal dwFreq As Long, ByVal dwDuration As Long) As Long
    Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
    Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    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 SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As LongPublic Const GWL_WNDPROC = (-4)
    Public Const SC_MAXIMIZE = &HF030&
    Public Const SC_MINIMIZE = &HF020&
    Public Const SC_SIZE = &HF000
    Public Const SC_CLOSE = &HF060
    Public Const WM_SYSCOMMAND = &H112
    Public Const SC_DEFAULT = &HF160
    Public Const WM_NCLBUTTONDBLCLK = &HA3
    Public Const SC_RESTORE = &HF120&Public prevWndProc As Long        ''''默认窗口程序地址Public Function WndProc(ByVal hwnd As Long, ByVal Msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
    On Error GoTo ShowErr    If Msg = WM_SYSCOMMAND Then
            If wParam = SC_RESTORE Then
                MsgBox "窗体恢复原状!"
                'Exit Function     '''这里如果被使用了,则移除相关操作,可以尝试使其有效
            ElseIf wParam = SC_MAXIMIZE Then
                MsgBox "窗体最大化!"
                'Exit Function
            ElseIf wParam = SC_MINIMIZE Then
                MsgBox "窗体最小化!"
                'Exit Function
            Else
                WndProc = CallWindowProc(prevWndProc, hwnd, Msg, wParam, lParam)
            End If
        ElseIf Msg = WM_NCLBUTTONDBLCLK Then
            MsgBox "你双击了标题栏!"
            'Exit Function
        End If
        
        WndProc = CallWindowProc(prevWndProc, hwnd, Msg, wParam, lParam)
        Exit Function
    ShowErr:
        WndProc = CallWindowProc(prevWndProc, hwnd, Msg, wParam, lParam)
        Exit Function
    End Function
      

  2.   

    如果是控件,直接用doubleclick事件,否则如上。
      

  3.   

    晕。调用了API? 不懂了。