擦除窗口背景win32API

Rav*_*ven 3 c++ winapi background erase clear

我的同学开始使用Delphi和pascal,但我作为c ++ porgrammer必须使用win32 API.他们正在改变背景颜色,所以我需要知道这一点,但有一些不同之处.

在delphi中,每个表单看起来都有它自己的实例,并且为一个窗口设置背景颜色只是改变一个值的问题.不是win32的情况,当你更改该值时,它会影响使用该类的每个窗口(更新后的c).

我需要做的是清除/擦除我的窗口背景.我可以用FillRect(..)做到这一点并且它工作得非常好,但我发现WM_ERASEBKGND似乎正在做我需要的东西.他们提到,如果这个消息被处理,我应该返回一个非零,但他们没有告诉如何处理它.

那么FillRect(和similliar)可以让我用我定义的画笔擦除一个窗口而不是默认的类吗?

谢谢

Jon*_*ood 11

WM_ERASEBKGND只需擦除背景即可处理(使用FillRect()很好).

通过返回非零值,您只需告诉Windows此消息已被处理,无需进一步操作.没有比这更正式的了.