寫了下面的程序,測(cè)試下父窗口設(shè)置 WS_CLIPCHILDREN 前后,對(duì)父窗口調(diào)用 RedrawWindow 或 InvalidateRect 對(duì)子窗口刷新造成的影響

操作 |
有WS_CLIPCHILDREN |
無(wú)WS_CLIPCHILDREN |
InvalidateRect |
父窗口的無(wú)效區(qū)域增加
對(duì)子窗口無(wú)影響 |
父窗口的無(wú)效區(qū)域增加
子窗口的無(wú)效區(qū)域增加
且無(wú)效區(qū)域坐標(biāo)相同(屏幕坐標(biāo)系下) |
RedrawWindow
FLAG: RDW_INVALIDATE |
父窗口的無(wú)效區(qū)域增加
對(duì)子窗口無(wú)影響 |
父窗口的無(wú)效區(qū)域增加
子窗口的無(wú)效區(qū)域增加
且無(wú)效區(qū)域坐標(biāo)相同(屏幕坐標(biāo)系下) |
RedrawWindow
FLAG: RDW_INVALIDATE|RDW_ALLCHILDREN |
父窗口的無(wú)效區(qū)域增加
子窗口的無(wú)效區(qū)域增加
且無(wú)效區(qū)域坐標(biāo)相同(屏幕坐標(biāo)系下) |
父窗口的無(wú)效區(qū)域增加
子窗口的無(wú)效區(qū)域增加
且無(wú)效區(qū)域坐標(biāo)相同(屏幕坐標(biāo)系下) |
RedrawWindow
FLAG: RDW_INVALIDATE|RDW_NOCHILDREN |
父窗口的無(wú)效區(qū)域增加
對(duì)子窗口無(wú)影響 |
父窗口的無(wú)效區(qū)域增加
對(duì)子窗口無(wú)影響 |
其他窗口在父子窗口上移動(dòng) |
父窗口會(huì)接收到WM_PAINT消息,但是無(wú)效區(qū)域是 父窗口 排除子窗口后的區(qū)域和 其他當(dāng)前移動(dòng)的窗口區(qū)域的交集
子窗口會(huì)接收到wm_paint消息,無(wú)效區(qū)域是 子窗口和當(dāng)前移動(dòng)的窗口的區(qū)域的交集 |
父窗口會(huì)接收到WM_PAINT消息,但是無(wú)效區(qū)域是 父窗口當(dāng)前移動(dòng)的窗口區(qū)域的交集
子窗口會(huì)接收到wm_paint消息,無(wú)效區(qū)域是 子窗口和當(dāng)前移動(dòng)的窗口的區(qū)域的交集
|
>