为什么mouseleave消息不起作用

tkminigame 2009-06-22 01:01:43
开个win32项目,wndproc里面加这个。
switch (message)
{
case WM_MOUSELEAVE:
::MessageBox(0,0,0,0);
break;

不起作用,why?
...全文
165 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
klkvc386 2009-06-22
  • 打赏
  • 举报
回复
Mark
Ryanwen 2009-06-22
  • 打赏
  • 举报
回复
说了是MFC的,换成SDK就是把函数换成消息的工作,很难吗
tkminigame 2009-06-22
  • 打赏
  • 举报
回复
我不用mfc编程,这代码我没用。
Ryanwen 2009-06-22
  • 打赏
  • 举报
回复
写了个类的,换成SDK的就可以了

m_bTracking = FALSE; //初始化

void CXXX::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
if (!m_bTracking)
{
TRACKMOUSEEVENT tme;
tme.cbSize = sizeof(tme);
tme.hwndTrack = m_hWnd;
tme.dwFlags = TME_LEAVE|TME_HOVER;
tme.dwHoverTime = 1;
m_bTracking = _TrackMouseEvent(&tme);
}

CButton::OnMouseMove(nFlags, point);
}

LRESULT CXXX::OnMouseLeave(WPARAM wParam, LPARAM lParam)
{
m_bTracking = FALSE;
return 0;
}
tkminigame 2009-06-22
  • 打赏
  • 举报
回复
能具体点么〉
spring203 2009-06-22
  • 打赏
  • 举报
回复
首先,要在mousemove中调 _TrackMouseEvent。
skyxie 2009-06-22
  • 打赏
  • 举报
回复
先要调用 TrackMouseEvent 才会有 WM_MOUSELEAVE 发给你的窗口
Ryanwen 2009-06-22
  • 打赏
  • 举报
回复
估计没有调用TrackMouseEvent

15,978

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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