RedrawWindow 和 InvalidateRect 刷新

来源:互联网 发布:java多线程编程详解 编辑:程序博客网 时间:2024/06/14 08:51

当父窗体设置了 WS_CLIPCHILDREN 的属性后, 默认状态下,RedrawWindow 和 InvalidateRect 不会导致子窗体重绘,因此,如果子窗体同时设置了 WS_EX_TRANSPARENT 属性,子窗体就会被父窗体刷没了。

解决的办法是 RedrawWindow 的时候添加 RDW_ALLCHILDREN 标志,强制子窗体也重绘,而不要使用默认的 RedrawWindow 和 InvalidateRect(当然也包括 Invalidate)。

RedrawWindow( 0, 0, RDW_ALLCHILDREN | RDW_INVALIDATE | RDW_UPDATENOW | RDW_ERASE); // 刷新时包括子窗体