在此question中,雷米在评论中说:
TWinControl.Handle属性提供的HWND不是持久的。它可以在组件的生命周期内被破坏和重建,甚至多次。每次TShellListView分配新的HWND时,都必须再次调用DragAcceptFiles(TRUE)。覆盖CreateWnd()允许您这样做。为了更好地衡量,您还应该在销毁HWND之前覆盖DestroyWnd()以调用DragAcceptFiles(FALSE)。
直到现在我还没有意识到这一点,我想了解破坏和重建HWND的机制。发生这种情况的原因是什么?为什么?