1
我想在AutoHotkey中实现一种窗口对接功能,并且在使用WinMove
移动窗口时出现性能问题。用WinMove移动窗口非常慢
在我的消息处理程序中,我检测被移动的窗口是否有任何依赖项,并根据需要移动它们。问题是移动Dockers WinMove
会导致非常缓慢和不平稳的拖动。奇怪的是,CPU负载确实是而不是上升,所以它不是由不良循环或其他引起的。
如果我使用Gui,Show
命令代替,它会产生一个很好的流畅的动作,但是如果停靠的窗口关闭并且它的父窗口被移动,则停靠窗口将重新显示为一个薄的〜5x10像素的窗口。我尝试使用命令的hide
选项,以及在窗口的关闭处理程序中专门添加对Gui, Destroy
的调用,但都没有帮助。此外,使用Gui
命令意味着它不仅更加混乱,而且除了句柄之外还必须存储Gui数字,这并不理想。
; Works and leaves closed windows closed, but is very slow
WinMove, ahk_id %dHWND%,, dX, dY
; This works and is fast, but requires storing the GUI # and closed windows reappear
Gui, % (Dock[dHWND, "gui"] ? Dock[dHWND, "gui"] . ":" : "") . "Show", % "hide na x" . dX " y" . dY
有没有人知道为什么WinMove
是如此之慢,以及如何解决它? (我也会考虑Gui
命令,如果它可以修复不重新显示关闭窗口。)
完美。我一直在忘记这一点。感谢三百万。 – Synetech 2014-09-26 21:54:35