鼠标移动后触发事件 - FMX C++
fire event after mouse moves form - FMX C++
我想 运行 在我的表单被传统 "left-mouse down on caption bar and drag to new spot" 移动到屏幕后的一段代码。 OnMouseUp 只作用于窗体本身,不适用于鼠标点击标题栏。
这是 C++ 和 Win32 应用程序。
谢谢,
俄罗斯人
更新 1:显示我根据 Remy 的回答实现的代码。我从另一个 post 实现了他的代码,然后将另一个项目添加到 switch(uMsg) 以捕获 WM_MOVE 消息。这没有用。
case WM_MOVE:
{
ShowMessage("Moved");
}
更新 2:我根据 Remy 的评论将上面的 WM_MOVE
更改为 WM_EXITSIZEMOVE
,现在效果很好。当我完成移动表单时触发 1 次。
case WM_EXITSIZEMOVE:
{
ShowMessage("Moved");
}
正是我想要的。
FireMonkey 本身不支持您的要求。您将必须手动子类化表单的 HWND(请参阅 ) to intercept messages like WM_MOVING
, WM_MOVE
, WM_ENTERSIZEMOVE
, WM_EXITSIZEMOVE
,等等
我想 运行 在我的表单被传统 "left-mouse down on caption bar and drag to new spot" 移动到屏幕后的一段代码。 OnMouseUp 只作用于窗体本身,不适用于鼠标点击标题栏。
这是 C++ 和 Win32 应用程序。
谢谢, 俄罗斯人
更新 1:显示我根据 Remy 的回答实现的代码。我从另一个 post 实现了他的代码,然后将另一个项目添加到 switch(uMsg) 以捕获 WM_MOVE 消息。这没有用。
case WM_MOVE:
{
ShowMessage("Moved");
}
更新 2:我根据 Remy 的评论将上面的 WM_MOVE
更改为 WM_EXITSIZEMOVE
,现在效果很好。当我完成移动表单时触发 1 次。
case WM_EXITSIZEMOVE:
{
ShowMessage("Moved");
}
正是我想要的。
FireMonkey 本身不支持您的要求。您将必须手动子类化表单的 HWND(请参阅 WM_MOVING
, WM_MOVE
, WM_ENTERSIZEMOVE
, WM_EXITSIZEMOVE
,等等