鼠标移动窗体后触发事件-FMX C ++

时间:2018-12-08 03:55:36

标签: firemonkey c++builder

通过传统的“在标题栏上将鼠标左键向下拖动并拖动到新位置”,我的表单在屏幕上移动后,我想运行一段代码。 OnMouseUp仅适用于表单本身,不适用于标题栏上的鼠标单击。

这是C ++和Win32应用程序。

谢谢, 鲁斯

更新1:显示我根据雷米的答案实现的代码。我在另一篇文章中实现了他的代码,然后在switch(uMsg)中添加了另一个项目以捕获WM_MOVE消息。这没用。

case WM_MOVE:
{
ShowMessage("Moved");
}

更新2:根据雷米的评论,我将以上内容从WM_MOVE更改为WM_EXITSIZEMOVE,现在效果很好。当我完成移动表单时触发1次。

case WM_EXITSIZEMOVE:
{
ShowMessage("Moved");
}

就是我想要的。

1 个答案:

答案 0 :(得分:2)

FireMonkey本身不支持您的要求。您将必须手动将表单的HWND子类化(请参阅this answer),以拦截诸如WM_MOVINGWM_MOVEWM_ENTERSIZEMOVEWM_EXITSIZEMOVE等消息。