子控件是否在父控件 Window 之后绘制?

Are child controls painted after the parent Window?

假设我有以下 Window 和一个按钮:

如果我最小化并恢复 Window,则会发送两条 WM_PAINT 消息,一条用于 Window,另一条用于按钮。

Window 的 WM_PAINT 消息将请求重绘整个 Window,Button 的 WM_PAINT 消息将请求 Button重新粉刷。

如果先重绘Button,再重绘Window,岂不是意味着Window的绘制会覆盖Button,使其不可见?那么这是否意味着 Window 在 Button 之前绘制?

Are child controls painted after the parent Window?

是的。

与相同的 parent(兄弟姐妹)一起为 children 绘画相当复杂。此处涵盖了这些主题:MSDN: Child Window Update Region