通过传统的“在标题栏上将鼠标左键向下拖动并拖动到新位置”,我的表单在屏幕上移动后,我想运行一段代码。 OnMouseUp仅适用于表单本身,不适用于标题栏上的鼠标单击。
这是C ++和Win32应用程序。
谢谢, 鲁斯
更新1:显示我根据雷米的答案实现的代码。我在另一篇文章中实现了他的代码,然后在switch(uMsg)中添加了另一个项目以捕获WM_MOVE消息。这没用。
case WM_MOVE:
{
ShowMessage("Moved");
}
更新2:根据雷米的评论,我将以上内容从WM_MOVE
更改为WM_EXITSIZEMOVE
,现在效果很好。当我完成移动表单时触发1次。
case WM_EXITSIZEMOVE:
{
ShowMessage("Moved");
}
就是我想要的。
答案 0 :(得分:2)
FireMonkey本身不支持您的要求。您将必须手动将表单的HWND子类化(请参阅this answer),以拦截诸如WM_MOVING
,WM_MOVE
,WM_ENTERSIZEMOVE
,WM_EXITSIZEMOVE
等消息。