是否将WM_ERASEBKGND消息发布到消息队列中?

WM_PAINT消息不会发布到消息队列,而是当消息队列为空时, WM_PAINT消息将被发送到窗口过程(如果窗口的某些区域无效)。

但是, WM_ERASEBKGND消息是以某种类似的方式发送的,还是只是发布到消息队列中( 文档中没有说明这一点)。

它既不是Windows消息的非典型,也不是非典型的。 它将在程序执行UpdateWindow()之类的命令时发送,或者处理移动或调整窗口大小的WM_SYSCOMMAND之类的消息。 它将在程序调用InvalidateRect()时发布。

对于WM_PAINT也是如此,通常是“已发布”消息,但只有当消息队列为空时才由GetMessage()返回。 但是,当您调用UpdateWindow()时,它将被发送,确保窗口在返回时被绘制。

不依赖于这些实现细节非常重要。