Frage

Grundsätzlich bin ich der Suche nach einem IsWindowMoving (HWND) Win32-API-Aufruf. Ich muss wissen, ob der Benutzer gerade ein Fenster bewegt wird.

Das Fenster nicht zu mir gehört, hört so für WM_SYSCOMMAND / SC_MOVE oder WM_MOVING nicht möglich ist (ich will nicht wegen 32/64 Interop Unterklasse oder Haken).

War es hilfreich?

Lösung

Wenn das Fenster nicht zu Ihnen gehört, und du wirst keine Nachrichten schnüffeln, das Beste, was Sie können meiner Meinung nach zu diesem Fenster hält, einen Griff bekommen. Das schränkt Sie auf das, was Informationsfunktion Anrufe existieren, die Arbeit an einem Griff. Ich kenne keinen solchen Anruf, der den Benutzer darüber informieren, dass das Fenster bewegt wird.

Sie können von Glück.

Andere Tipps

Wenn Sie nicht anschließen wollen, Unterklasse, oder irgendetwas anderes wie das, denke ich, Polling könnte der einfachste Weg, links sein. Mit GetWindowRect Sie die vorherigen und aktuellen verfolgen Position und Größe eines Fensters. ein Delta tun lassen Sie erkennen, ob der Benutzer (oder Ändern der Größe selbst), um das Fenster bewegt. Da Sie mit UI zu tun haben, gibt es keine Notwendigkeit, zu schnell abfragen (auch 2-5 mal pro Sekunde sollte viel sein).

Sie können dies mit GetGUIThreadInfo - kein Haken benötigt. Verwenden Sie GetWindowThreadProcessId die TID für Ihre Hwnd erhalten dann überprüfen Sie die GUITHREADINFO.flags und GUITHREADINFO.hwndMoveSize zu sehen, ob Ihre Fenster in einem Zug / size Schleife ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top