C Windows何时停止发送WM_PAINT消息?

C Windows何时停止发送WM_PAINT消息?,c,winapi,C,Winapi,如果窗口上指定的矩形无效(即需要绘制),则会将WM_-PAINT消息发布到消息队列,如果我没有在WM_-PAINT事件处理程序中验证矩形,则会将新的WM_-PAINT消息发布到消息队列 这是正确的吗 如果它是正确的,那么Windows如何知道不继续发送WM_PAINT消息,我的意思是Windows如何知道等到我处理完WM_PAINT事件,然后在我没有验证矩形的情况下发送新的WM_PAINT消息,在我将WM_PAINT消息从消息队列中退出队列后,不直接发送新的WM_PAINT消息 如果我没有验证矩

如果窗口上指定的矩形无效(即需要绘制),则会将
WM_-PAINT
消息发布到消息队列,如果我没有在
WM_-PAINT
事件处理程序中验证矩形,则会将新的
WM_-PAINT
消息发布到消息队列

这是正确的吗

如果它是正确的,那么Windows如何知道不继续发送
WM_PAINT
消息,我的意思是Windows如何知道等到我处理完
WM_PAINT
事件,然后在我没有验证矩形的情况下发送新的
WM_PAINT
消息,在我将
WM_PAINT
消息从消息队列中退出队列后,不直接发送新的
WM_PAINT
消息

如果我没有验证矩形,Windows如何知道等待我处理完WM_PAINT事件,然后发送新的WM_PAINT消息

通过调用
BeginPaint
,然后进行绘制,然后调用
EndPaint
来处理
WM_-PAINT
。调用
EndPaint
时,绘制的区域标记为有效

。。。在我将WM_PAINT消息从消息队列中退出队列后,不直接发送新的WM_PAINT消息

Windows在处理消息队列时生成
WM_PAINT
消息。只有当存在无效区域时,它才会生成
WM_PAINT
消息。绘制完成后,不再有无效区域,因此不会生成
WM_PAINT
消息

请注意,Windows通常不会发送消息。这些是当应用程序的消息循环从消息队列中提取消息时检索的异步消息。例如,当调用
GetMessage
时,消息队列为空,并且存在无效区域,则生成
WM_-PAINT
消息

上述语句的例外情况是调用
UpdateWindow
RedrawWindow
时。在这些场景中,
WM_PAINT
消息是同步发送的。从:

当系统或其他应用程序请求绘制应用程序窗口的一部分时,会发送WM_PAINT消息。当调用UpdateWindow或RedrawWindow函数时,或当应用程序使用GetMessage或PeekMessage函数获得WM_PAINT消息时,通过DispatchMessage函数发送消息