C# 是否正在拖动外部窗口?

C# 是否正在拖动外部窗口?,c#,draggable,user32,C#,Draggable,User32,我有一个程序,可以使windows捕捉到指定位置和大小的插槽。您可以拖动窗口,然后在完成拖动后,它将捕捉到最近的插槽。我想添加的是窗口将在拖动时移动到的插槽的覆盖层 捕捉和覆盖工作正常。我的问题是,我需要一个更好的方法来知道窗口是否被拖动。我阻止窗口在拖动时捕捉到插槽的方法是在单击鼠标时不做任何操作。在单击鼠标时绘制覆盖图是可行的,但即使拖动窗口,也会在单击鼠标时显示覆盖图 是否有一种方法可以接受hwnd并告诉我是否正在拖动该窗口?或者有更好的方法来完成这个过程吗?因为我找不到任何东西,也没有人

我有一个程序,可以使windows捕捉到指定位置和大小的插槽。您可以拖动窗口,然后在完成拖动后,它将捕捉到最近的插槽。我想添加的是窗口将在拖动时移动到的插槽的覆盖层

捕捉和覆盖工作正常。我的问题是,我需要一个更好的方法来知道窗口是否被拖动。我阻止窗口在拖动时捕捉到插槽的方法是在单击鼠标时不做任何操作。在单击鼠标时绘制覆盖图是可行的,但即使拖动窗口,也会在单击鼠标时显示覆盖图


是否有一种方法可以接受hwnd并告诉我是否正在拖动该窗口?或者有更好的方法来完成这个过程吗?

因为我找不到任何东西,也没有人提出任何建议,所以我最后写了一些与之近似的东西。Win32是我的静态类,它处理所有与
user32.dll
交互的
DllImport
struct
定义

private bool isWindowDragging(IntPtr hWND, Win32.RECT rect)
{
  Point pos = Control.MousePosition;
  return Control.MouseButtons.Equals(MouseButtons.Left) && hWND.Equals(Win32.GetForegroundWindow()) &&
  pos.X >= rect.Left && pos.X <= rect.Right && pos.Y >= rect.Top && pos.Y <= rect.Top+40;
}
private bool isWindowDraging(IntPtr hWND,Win32.RECT)
{
点位置=控制。鼠标位置;
返回控件.MouseButtons.Equals(MouseButtons.Left)和&hWND.Equals(Win32.GetForegroundWindow())&&
位置X>=矩形左侧和位置X=矩形顶部和位置Y