为什么WM_ERASEBKGND有单独的消息

时间:2012-02-27 15:07:55

标签: winapi ownerdrawn

我从未完全理解为什么删除背景会有单独的Windows消息。我看起来有点多余。当我创建自己绘制的按钮时,我总是最终从WM_PAINT中删除背景。我有时甚至从WM_ERASEBKGND内部完成所有绘画并将WM_PAINT留空。两者似乎都很好。将绘画分成2个操作有什么好处吗?

1 个答案:

答案 0 :(得分:4)

这完全是猜测:

回到过去,用颜色填充矩形是一个相对缓慢的操作。但填充一个大矩形仍然比填充许多小矩形快得多。

我想如果你有一个带有子窗口的窗口,并且两个都有相同的注册背景画笔,那么Windows足够聪明,意识到当它已经清除时,它不需要向孩子发送WM_ERASEBKGND家长。在非常慢的PC上使用中等复杂的对话框,这可能是一个重大改进。