Внешнее окно перетаскивается? - PullRequest
1 голос
/ 15 июля 2010

У меня есть программа, которая заставляет окна щелкать по слотам, которые указывают местоположение и размер.Вы можете перетащить окно, и оно будет привязано к ближайшему слоту, когда вы закончите перетаскивание.Я хочу добавить наложение слота, в которое будет перемещено окно, когда происходит перетаскивание.

С привязкой и наложением все в порядке.Моя проблема в том, что мне нужен лучший способ узнать, перетаскивается ли окно.То, как я предотвращал привязку окна к слоту, когда происходило перетаскивание, это просто ничего не делал, пока щелкала мышь.Рисование наложения при щелчке мышью работает, но заставляет наложение появляться при каждом щелчке мыши, даже если перетаскивается окно.окно перетаскивается?Или есть ли лучший путь для этого процесса?

1 Ответ

2 голосов
/ 23 июля 2010

Так как я ничего не мог найти, и никто не выдвинул никаких предложений, я закончил тем, что написал что-то, что приближает это. Win32 - мой статический класс, который обрабатывает все определения DllImport s и struct для взаимодействия с user32.dll.

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;
}
...