鼠标离开窗口或控件及悬停的消息(源码)

  勇芳 2017-10-22 6426

鼠标离开窗口或控件及悬停的消息(源码)

这功能很常用,很多人自己用定时器做。

其实这是微软WIN编程里本来就有的功能,只是很少被人提及,很多人不知道而以。

下面编程环境:FireFly for FreeBASIC   (其它可以稍加改改即可)

Function FORM2_CUSTOM ( _
                      hWndForm      as HWnd, _      ' 窗体句柄
                      wMsg          as UInteger,  _  ' 消息类型
                      wParam        as WPARAM, _    ' 第一个消息参数
                      lParam        as LPARAM   _   ' 第二个消息参数
                      ) as Long

Dim entTrack as tagTRACKMOUSEEVENT
Select Case  wMsg
    Case WM_MOUSELEAVE   '鼠标出窗口
         Print "鼠标出窗口"   
    Case WM_MOUSEHOVER   '鼠标悬停
        Print "悬停"
    Case WM_NCHITTEST        '启用鼠标检查 
        entTrack.cbSize=SizeOf(tagTRACKMOUSEEVENT)
        entTrack.dwFlags=TME_LEAVE Or TME_HOVER '移出 和 悬停 标志
        entTrack.hwndTrack=hWndForm '被检查窗口或控件
        entTrack.dwHoverTime =300  '悬停时间 ms
        TrackMouseEvent @entTrack  
End Select
End Function

如果是VB,那需要

1,声明API

2,子类化窗口


因国家互联网安全管理要求,关闭回帖功能。大家需要留言,请使用【勇芳软件客服】即时联系勇芳点此打开->>勇芳软件客服
返回
联系勇芳
发新帖 搜索 反馈 回顶部