当父窗体设置了 WS_CLIPCHILDREN 的属性后, 默认状态下,RedrawWindow 和 InvalidateRect 不会导致子窗体重绘,因此,如果子窗体同时设置了 WS_EX_TRANSPARENT 属性,子窗体就会被父窗体刷没了。
解决的办法是 RedrawWindow 的时候添加 RDW_ALLCHILDREN 标志,强制子窗体也重绘,而不要使用默认的 RedrawWindow 和 InvalidateRect(当然也包括 Invalidate)。
RedrawWindow( 0, 0, RDW_ALLCHILDREN | RDW_INVALIDATE | RDW_UPDATENOW | RDW_ERASE); // 刷新时包括子窗体
本文探讨了在父窗体设置WS_CLIPCHILDREN属性后,子窗体可能出现的不重绘问题。特别是当子窗体设置了WS_EX_TRANSPARENT属性时,使用RedrawWindow和InvalidateRect可能无法正确刷新子窗体。文章提供了解决方案,即通过添加RDW_ALLCHILDREN标志来强制子窗体重绘。
695

被折叠的 条评论
为什么被折叠?



