打开APP
未登录
开通VIP,畅享免费电子书等14项超值服
开通VIP
首页
好书
留言交流
下载APP
联系客服
_TrackMouseEvent
jtll521
>《VC学习》
2010.11.30
关注
默认情况下,窗口是不响应
WM_MOUSELEAVE
和
WM_MOUSEHOVER
消息的,所以要使用
_TrackMouseEvent
函数来激活这两个消息。调用这个函数后,当鼠标在指定窗口上停留超过一定时间或离开窗口后,该函数会
Post
这两个消息到指定窗口。
使用方法:
1.
在对话框类中定义一个变量来标识是否追踪当前鼠标状态,之所以要这样定义是要避免鼠标已经在窗体之上时,一移动鼠标就不断重复产生
WM_MOUSEHOVER
。
BOOL
_bMouseTrack=
TRUE
;
2.
在
OnMouseMove
中调用
_TrackMouseEvent
函数
if (_bMouseTrack)
//
若允许
追踪,则。
{
TRACKMOUSEEVENT
csTME;
csTME.cbSize =
sizeof
(csTME);
csTME.dwFlags =
TME_LEAVE|TME_HOVER;
csTME.hwndTrack =
m_hWnd
;
//
指定要
追踪
的窗口
csTME.dwHoverTime = 10;
//
鼠标在按钮上停留超过
10ms
,才认为状态为
HOVER
::
_TrackMouseEvent
(&csTME);
//
开启
Windows
的
WM_MOUSELEAVE
,
WM_MOUSEHOVER
事件支持
_bMouseTrack=
FALSE
;
//
若已经
追踪
,则停止
追踪
}
3.
在
OnMouseLeave
中再次允许追踪鼠标状态
_bMouseTrack=
TRUE
;
4.
备注:这两个消息的映射要自己写
ON_MESSAGE(WM_MOUSEHOVER,OnMouseHover)
ON_MESSAGE(WM_MOUSELEAVE,OnMouseLeave)
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报
。
打开APP,阅读全文并永久保存
查看更多类似文章
猜你喜欢
类似文章
【热】
打开小程序,算一算2024你的财运
WM_MOUSELEAVE WM_MOUSEHOVER 消息的捕捉
TrackMouseEvent
C#鼠标事件
C#实现一个类似QQ窗体自动上卷的程序 - e路共赢的日志 - 网易博客
_TrackMouseEvent 与 WIN32 ToolTip
为什么没有鼠标移入(WM_MOUSEENTER)消息?
更多类似文章 >>
生活服务
热点新闻
留言交流
回顶部
联系我们
分享
收藏
点击这里,查看已保存的文章
导长图
关注
一键复制
下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!
联系客服
微信登录中...
请勿关闭此页面
先别划走!
送你5元优惠券,购买VIP限时立减!
5
元
优惠券
优惠券还有
10:00
过期
马上使用
×