有用定时器来解决这个问题的。
象CToolBar的按钮效果就是用定时器来做的。
当鼠标移到窗口中时,产生定时器。
定时器发现鼠标不再在窗口内时,就有所动作而后销毁自身。
你可以获得当前的鼠标位置,判断是否在窗口范围内,而不用担心是否在子控制中,或是在其它窗口中。
象CToolBar的按钮效果就是用定时器来做的。
当鼠标移到窗口中时,产生定时器。
定时器发现鼠标不再在窗口内时,就有所动作而后销毁自身。
你可以获得当前的鼠标位置,判断是否在窗口范围内,而不用担心是否在子控制中,或是在其它窗口中。
解决方案 »
- directshow如何控制摄像头转动?
- mfc窗口,控件的刷新的时间是多少,怎么修改这个时间
- 紧急求助!在Delphi中如何调用VC++编制的DLL中的函数?
- 图象拼接方法都有哪些,发展到什么程度了,大家讨论一下
- 请 jinxuliang(smielfox) 来领分
- 关于数据类型的转换问题,如何将一个String转换成Int型呢?
- 怎样在Doc类成员函数下取消View类成员函数中定义的SetTimer(1,100,NULL);
- VB组件在asp调用时的问题,请大虾指点!(200分,不让多给,先给100)
- 如何实现定时(比如每天凌晨一点)执行某个程序??低手问题,不要见笑
- 如何防止程序假死
- 请问高手??
- 求救:怎样在VC中写数据到EXCEL文件中
{ POINT pt;
RECT rcWindow;
GetWindowRect( &rcWindow );
GetCursorPos( &pt );
if(pt.x > rcWindow.right || pt.x < rcWindow.left
|| pt.y < rcWindow.top || pt.y > rcWindow.bottom)
MessageBox("mouse leaves",NULL,MB_OK);
return 0;
}
目前,鼠标从边缘的对话框划过,离开对话框时候,不产生WM_MOUSELEAVE消息:(
RECT rcWindow;
GetClientRect( &rcWindow );
ClientToScreen(&rcWindow);
GetCursorPos( &pt );
if(pt.x >= rcWindow.right || pt.x <= rcWindow.left
|| pt.y <= rcWindow.top || pt.y >= rcWindow.bottom)
MessageBox("mouse leaves",NULL,MB_OK);
不知可以吗。没有试过。