Windows 确定当前是否正在移动给定窗口

Windows 确定当前是否正在移动给定窗口,windows,winapi,window-messages,Windows,Winapi,Window Messages,基本上,我正在寻找一个IsWindowMoving(HWND)Win32 API调用。我需要知道用户当前是否正在移动窗口 该窗口不属于我,因此不可能监听WM_SYSCOMMAND/SC_MOVE或WM_MOVE(由于32/64互操作,我不想创建子类或钩子)。如果该窗口不属于您,并且您不打算窥探消息,我认为您最好掌握该窗口的句柄。这就限制了对句柄的任何信息函数调用。据我所知,没有这样的电话可以通知用户窗口正在移动 你可能运气不好。如果这个窗口不属于你,你也不会去窥探消息,我想你最好能找到这个窗口的

基本上,我正在寻找一个IsWindowMoving(HWND)Win32 API调用。我需要知道用户当前是否正在移动窗口


该窗口不属于我,因此不可能监听WM_SYSCOMMAND/SC_MOVE或WM_MOVE(由于32/64互操作,我不想创建子类或钩子)。

如果该窗口不属于您,并且您不打算窥探消息,我认为您最好掌握该窗口的句柄。这就限制了对句柄的任何信息函数调用。据我所知,没有这样的电话可以通知用户窗口正在移动


你可能运气不好。

如果这个窗口不属于你,你也不会去窥探消息,我想你最好能找到这个窗口的手柄。这就限制了对句柄的任何信息函数调用。据我所知,没有这样的电话可以通知用户窗口正在移动


你可能不走运。

你可以不用钩子就可以做到这一点。使用GetWindowThreadProcessId获取hwnd的TID,然后检查GuitThreadInfo.flags和GuitThreadInfo.hwndMoveSize以查看窗口是否处于移动/大小循环中。

您可以使用-无需挂接来完成此操作。使用GetWindowThreadProcessId获取hwnd的TID,然后检查GuitThreadInfo.flags和GuitThreadInfo.hwndMoveSize以查看您的窗口是否处于移动/大小循环中。

如果您不想挂钩、子类或其他类似的方式,我认为轮询可能是剩下的最简单的方法。使用可以跟踪窗口的上一个和当前位置及大小。执行增量将让您检测用户是否正在移动窗口(甚至调整窗口大小)。由于您使用的是UI,因此无需过快地进行轮询(即使每秒2-5次也足够)。

如果您不想使用钩子、子类或其他类似的方法,我认为轮询可能是剩下的最简单的方法。使用可以跟踪窗口的上一个和当前位置及大小。执行增量将让您检测用户是否正在移动窗口(甚至调整窗口大小)。由于您处理的是UI,所以不需要太快地进行轮询(即使每秒2-5次也足够了)