【发布时间】:2012-08-27 21:33:23
【问题描述】:
来自 MSDN 文档:
BeginPaint函数验证整个客户区。
ValidateRect函数的一部分不应被调用 必须在下一个 WM_PAINT 消息之前验证更新区域 生成。1
多年来我一直在使用 Win32 API 进行编程,但我从未想过要调用 ValidateRect 函数。今天我的一位同事指出,我们错过了对 ValidateRect 的调用,这修复了我们使用 GDI 制作高速动画时的一个错误(我知道,一个矛盾的说法)
有人可以告诉我在BeginPaint/EndPaint 对之后是否需要调用ValidateRect?我在 MSDN 上没有看到任何说明这一点的文档,而且我看到的哪些文档和示例表明不需要调用 ValidateRect。
【问题讨论】:
-
很不清楚。只有在直接绘制到窗口时才应该调用 ValidateRect,因此不需要 WM_PAINT。在动画中并不少见。
标签: winapi