如何判断鼠标是否移动

Iamsnowgirl 2003-08-20 05:50:08
如何判断鼠标在一个窗体中是否移动,
...全文
213 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
zyb_17flash 2003-08-21
  • 打赏
  • 举报
回复
其实你可以在OnMouseMove事件中用下列代码实现你的需求:
static int xPos = X;
static int yPos = Y;
if( X!=xPos || Y!=yPos )Close();
xuv2002 2003-08-21
  • 打赏
  • 举报
回复
简单的做法
你可以把Panel->OnMouseMove Image->OnMouseMove事件里面也照
Form->OnMouseMove事件来写就可以了
Iamsnowgirl 2003-08-21
  • 打赏
  • 举报
回复
对啊,我是用了panel,而且充满了整个窗口,而且还有一个image控件,也是充满了整个窗口,怎么捕捉wm-mousemove事件,写清楚一点好吗
CityHost 2003-08-21
  • 打赏
  • 举报
回复
试着捕捉 WM_MOUSEMOVE 事件,然后得到xy坐标
xPos = GET_X_LPARAM(lParam);
yPos = GET_Y_LPARAM(lParam);
然后判断一下鼠标是否在Form的范围内。
看看这个方法行不行。
xuv2002 2003-08-21
  • 打赏
  • 举报
回复
从你的代码上来看,除了拼写错误,没有什么语法问题

假如不能达到要求

原因可能有这几点造成的

1. 你的Form 用Close() 方法是否能关闭成功?

2. 你的Form上边有其他控件,例如我在一个Form上放一个Panel,Panel充满整个窗体
这样Form将无法接收到鼠标移动的消息,OnMouseMove事件也就不能触发了



Iamsnowgirl 2003-08-21
  • 打赏
  • 举报
回复
我说清楚一点,大家帮忙看看是怎么回事,我的窗口中有一个计时器,在一定时间间隔内检测一个外部设备,如果检测到,就关闭此窗口,现在我想在此基础上在添加一个功能,就是只要鼠标移动了,不管有无检测到外部设备,都关闭该窗口,请问该怎么办呢
Iamsnowgirl 2003-08-21
  • 打赏
  • 举报
回复
我要结贴了,谢谢各位,我最后用了zyb_17flash() 的办法
阿鹏兄 2003-08-21
  • 打赏
  • 举报
回复
在最上面的控件上写TControl->OnMouseMove
Iamsnowgirl 2003-08-20
  • 打赏
  • 举报
回复
不对,根本没有效果
NowCan 2003-08-20
  • 打赏
  • 举报
回复
yes
Iamsnowgirl 2003-08-20
  • 打赏
  • 举报
回复
你说的是不是form中的onmousemove事件,如果说我要判断鼠标移动的话,关闭这个窗口,这样写对吗
void __fastcall TForm2::MouseMove(TObject *Sender, TShiftState Shift,
int X, int Y)
{
this->close();
}
Atomictry 2003-08-20
  • 打赏
  • 举报
回复
这次你终于给分了嘛。
FormMouseMove事件。

13,824

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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