如果子控件覆盖无效矩形,父 Window 会收到 WM_PAINT 消息吗?
Will a parent Window receives a WM_PAINT message if a child control covers the invalid rectangle?
假设我有以下 Window 和一个按钮:
如果放置Button的矩形需要绘制,WM_PAINT
消息是只发送给Button还是同时发送给父级Window?
编辑: 我的意思是 "needs to be painted" 例如:如果我最小化并恢复 window,如果我用另一个覆盖它 window 然后发现它(不确定这是否会在 Windows 7 中导致 WM_PAINT
消息),等等
要使按钮无效,您可以调用 InvalidateRect
并传递按钮的 window 句柄。这将导致 WM_PAINT
消息被传送到按钮。没有 WM_PAINT
消息传送到按钮的父级。
在评论中,您描述了一个场景,其中父级 window 被调整大小以显示以前隐藏的按钮。在那种情况下,父级和按钮都将无效,因此两者都会收到 WM_PAINT
消息。
假设我有以下 Window 和一个按钮:
如果放置Button的矩形需要绘制,WM_PAINT
消息是只发送给Button还是同时发送给父级Window?
编辑: 我的意思是 "needs to be painted" 例如:如果我最小化并恢复 window,如果我用另一个覆盖它 window 然后发现它(不确定这是否会在 Windows 7 中导致 WM_PAINT
消息),等等
要使按钮无效,您可以调用 InvalidateRect
并传递按钮的 window 句柄。这将导致 WM_PAINT
消息被传送到按钮。没有 WM_PAINT
消息传送到按钮的父级。
在评论中,您描述了一个场景,其中父级 window 被调整大小以显示以前隐藏的按钮。在那种情况下,父级和按钮都将无效,因此两者都会收到 WM_PAINT
消息。