WM_PAINT
消息未发布到消息队列,而是当消息队列为空时,WM_PAINT
消息将发送到窗口过程(如果窗口的某些区域无效)。
但是,WM_ERASEBKGND
消息是以某种类似的方式发送的,还是只是发布到消息队列中(documentation不要对此进行任何说明。)
答案 0 :(得分:4)
对于Windows消息而言,它既不是非典型的,也不是非典型的。它将在程序执行UpdateWindow()之类的命令时发送,或者处理移动或调整窗口大小的WM_SYSCOMMAND之类的消息。它将在程序调用InvalidateRect()时发布。
对于WM_PAINT也是如此,通常是"发布"消息,但只有当消息队列为空时才由GetMessage()返回。但是,当您调用UpdateWindow()时,它将被发送,确保窗口在返回时被绘制。
不依赖这些实现细节非常重要。