请问一个控件如何获得鼠标离开消息。

lmm 2000-07-07 10:59:00
我用一个控件我想当鼠标放上时用MOUSEMOVE函数检测到启动一个操作,当鼠标离开时结束这个操作,但我不知道如何获得鼠标离开的消息。我的这个控件是基于Cwnd类的,急,请告诉我谢谢!
...全文
215 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
lmm 2000-07-07
  • 打赏
  • 举报
回复
我的email:elimeimei@163.net
dzl 2000-07-07
  • 打赏
  • 举报
回复

同意gomi,具体如下:

void CXxxxxx::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default

CRect rect;
GetClientRect(&rect);
if(rect.PtInRect(point)){
SetCapture();
//鼠标进入控件区域
}
else{
//鼠标离开倥件区域
ReleaseCapture();
}

CXxxxxx::OnMouseMove(nFlags, point);
}
ploto 2000-07-07
  • 打赏
  • 举报
回复
一旦鼠标进入时,就应该用SetCapture来接管所有的Mouse消息。在每次响应MouseMove事件时判断当前的Mouse的坐标是否在控件窗口内。如果不是,则就是鼠标离开了。然后用ReleaseCapture释放MouseMove消息即可。有不清楚,再用EMail跟我联系 QizhongZhu@263.net。
gomi 2000-07-07
  • 打赏
  • 举报
回复
可以使用SetCapture(),在WM_MOUSEMOVE消息中检测鼠标位置,如果鼠标离开窗口区域则ReleaseCapture()
yl 2000-07-07
  • 打赏
  • 举报
回复
可以用setmousehook挂接鼠标消息,你会收到有关鼠标位置的标志,其中友谊标志指示鼠标在按钮上,谢谢请给分,详细资料atoto@263.net
endlessway 2000-07-07
  • 打赏
  • 举报
回复
需要用到的函数GetCursorPos(),PtInRect()
endlessway 2000-07-07
  • 打赏
  • 举报
回复
检测鼠标的位置是否在你的控件的客户区矩形内,若不在,则说明鼠标已经离开了控件.你可以试试看.

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧