函数原型:
BOOl TrackMouseEvent(
 LPTRACKMOUSEEVENT lpEventTrack //pointer to a TRACKMOUSEVERN structure
);
函数说明
当鼠标指针离开一个窗口或者是在给定数据内经过一个窗口时,该函数向指向窗口发送消息。参数说明
lpEventTrack:指向一个类型为TrackMouseEvent的变量。(该变量是什么类型?)希望用过这个函数的朋友给个例子,在VBAPI声明器上面没有这个函数的声明

解决方案 »

  1.   

    http://www.allapi.net/apilist/TrackMouseEvent.shtmlhttp://www.codeguru.com/vb/controls/vb_othctrl/ocxcontrols/article.php/c7079/
      

  2.   

    下面的代码就是一个简单的例子来处理Windows的
    WM_MOUSELEAVE消息的,演示的是鼠标移出一个Button时的情形。Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
        (ByVal hwnd As Long, ByVal wMsg As Long, _
        ByVal wParam As Long, lParam As String) As LongPrivate Declare Function GetWindowLong Lib "user32" Alias _
        "GetWindowLongA" (ByVal hwnd As Long, _
        ByVal nIndex As Long) As LongPrivate Declare Function SetWindowLong Lib "user32" Alias _
            "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex _
            As Long, ByVal dwNewLong As Long) As Long
            
    Private 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
      
    Const GWL_WNDPROC = (-4&)Dim PrevWndProc&Private Const WM_DESTROY = &H2
    Public Declare Function TrackMouseEvent Lib "user32" (lpEventTrack As TRACKMOUSEEVENTTYPE) As LongPublic Const TME_CANCEL = &H80000000
    Public Const TME_HOVER = &H1&
    Public Const TME_LEAVE = &H2&
    Public Const TME_NONCLIENT = &H10&
    Public Const TME_QUERY = &H40000000Private Const WM_MOUSELEAVE = &H2A3&Public Type TRACKMOUSEEVENTTYPE
        cbSize As Long
        dwFlags As Long
        hwndTrack As Long
        dwHoverTime As Long
    End TypePublic bTracking As Boolean
    Dim evtTrack As TRACKMOUSEEVENTTYPE
    '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''Private Function SubWndProc(ByVal hwnd As Long, ByVal Msg As Long, _
                                ByVal wParam As Long, ByVal lParam As Long) _
                                As Long   If Msg = WM_DESTROY Then Terminate (hwnd)   '处理鼠标移出消息
       If Msg = WM_MOUSELEAVE Then
          bTracking = False
          Form1.Print "The mouse left the form!"
       End If
       SubWndProc = CallWindowProc(PrevWndProc, hwnd, Msg, wParam, lParam)
    End FunctionPublic Sub Init(hwnd As Long)
      PrevWndProc = SetWindowLong(hwnd, GWL_WNDPROC, AddressOf SubWndProc)
    End SubPublic Sub Terminate(hwnd As Long)
      Call SetWindowLong(hwnd, GWL_WNDPROC, PrevWndProc)
    End Sub' -- 模块结束 -- '2. 窗体中处理需要加入的代码:Option ExplicitPrivate Sub Command1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If bTracking = False Then
       bTracking = True
        Dim ET As TRACKMOUSEEVENTTYPE
        'initialize structure
        ET.cbSize = Len(ET)
        ET.hwndTrack = Command1.hwnd
        ET.dwFlags = TME_LEAVE
        'start the tracking
        TrackMouseEvent ET
    End If
    End SubPrivate Sub Form_Load()
    Call Init(Command1.hwnd)
    End SubPrivate Sub Form_Unload(Cancel As Integer)
    Call Terminate(Command1.hwnd)
    End Sub