WM_SIZE和WM_PAINT消息优先

时间:2015-09-25 08:56:02

标签: c winapi

当要发送WM_SIZEWM_PAINT消息时(例如:当我将窗口调整为更大的大小时),是否可以保证将发送WM_SIZE消息在WM_PAINT消息之前?

1 个答案:

答案 0 :(得分:4)

是的,首先收到WM_SIZE,并以新尺寸发送WM_PAINT

实际上,WM_PAINT lazy 消息(另一个是WM_TIMER,IIRC):它实际上并未发送到消息队列。相反,当窗口无效时,会设置一个标志,当您调用GetMessage()并且队列中没有剩余消息时,它会检查失效标志。如果已设置,则会返回伪造的WM_PAINT消息。

这具有WM_PAINT具有低优先级的效果,并且在单次重绘中有效地融合所有未决的失效。