当要发送WM_SIZE
和WM_PAINT
消息时(例如:当我将窗口调整为更大的大小时),是否可以保证将发送WM_SIZE
消息在WM_PAINT
消息之前?
答案 0 :(得分:4)
是的,首先收到WM_SIZE
,并以新尺寸发送WM_PAINT
。
实际上,WM_PAINT
是 lazy 消息(另一个是WM_TIMER
,IIRC):它实际上并未发送到消息队列。相反,当窗口无效时,会设置一个标志,当您调用GetMessage()
并且队列中没有剩余消息时,它会检查失效标志。如果已设置,则会返回伪造的WM_PAINT
消息。
这具有WM_PAINT
具有低优先级的效果,并且在单次重绘中有效地融合所有未决的失效。