C++ 在MSDN中调用UpdateWindows()时调用的方法有哪些?

C++ 在MSDN中调用UpdateWindows()时调用的方法有哪些?,c++,winapi,window,msdn,C++,Winapi,Window,Msdn,我有一个应用程序,我正在传递一个窗口的句柄ID,并在上面调用UpdateWindow方法。问题是对于像记事本这样的小应用程序,完成窗口更新几乎不需要100毫秒,而对于我的应用程序,完成窗口更新需要1分钟 因此,我想知道在后台调用的方法是什么,这样我就可以确定我的应用程序的时滞在哪里。UpdateWindow所做的主要事情是发送一条WM_PAINT消息,这可能会导致WM_橡皮擦BKNGD和WM_NCPAINT消息。在没有这些消息的情况下,可以进行绘制,但必须避免BeginPaint/EndPain

我有一个应用程序,我正在传递一个窗口的句柄ID,并在上面调用UpdateWindow方法。问题是对于像记事本这样的小应用程序,完成窗口更新几乎不需要100毫秒,而对于我的应用程序,完成窗口更新需要1分钟


因此,我想知道在后台调用的方法是什么,这样我就可以确定我的应用程序的时滞在哪里。

UpdateWindow所做的主要事情是发送一条WM_PAINT消息,这可能会导致WM_橡皮擦BKNGD和WM_NCPAINT消息。在没有这些消息的情况下,可以进行绘制,但必须避免BeginPaint/EndPaint,使用GetDC的HDC并调用ValidateRegion或ValidateRegion


您的WM_绘制处理程序不需要计算绘制所需的任何内容,这样做可能是绘制速度像您描述的那样慢的原因,该工作应该在绘制开始之前完成。如果你的窗口是一个更大的虚拟空间的视图,只绘制实际可见的区域。< /P>我是C++的新手。请原谅使用的技术语言。您是否阅读了:UpdateWindow函数通过向窗口发送消息来更新指定窗口的客户端区域。我认为此输入对我很有帮助。我希望避免在视图中绘制,因为我的视图更大,它有更多的组件。我调用UpdateWindows方法的目的是将一些系统回调方法重定向到我的自定义方法。我想在不绘制组件的情况下调用系统方法。我正在考虑使用RedrawWindow方法。它与UpdateWindow有何不同?问题在您的绘制中密码希望一个神奇的解决方案是徒劳的。修复你的绘画代码。