我们在MSDN中调用UpdateWindows()时调用了哪些方法?

What are the methods that are called when we invoke UpdateWindows() in MSDN?

我有一个应用程序,我在其中传递 window 的句柄 ID 并在 that.The 上调用 UpdateWindow() 方法问题是对于像记事本这样的小型应用程序,它几乎不需要大约 100 毫秒就可以完成更新 window,对于我的应用程序,完成 window.

的更新需要 1 分钟

因此,我想知道在后台调用了哪些方法,以便我可以确定我的应用程序的时间延迟在哪里。

UpdateWindow 所做的主要事情是发送 WM_PAINT 消息,这可能会导致 WM_ERASEBKNGD 和 WM_NCPAINT 消息(可以在没有这些消息的情况下进行绘制,但您必须避免 BeginPaint/EndPaint 并使用 GetDC() 中的 HDC 并改为调用 ValidateRect 或 ValidateRegion。

您的 WM_PAINT 处理程序不需要计算它需要绘制的内容(这样做很可能是绘制如您描述的那样慢的原因),该工作应该在绘制开始之前就已经完成了。如果您的 window 是一个更大的虚拟 space 的视图,则只绘制实际可见的区域。