我的同学开始使用 Delphi 和 Pascal,但我作为 C++ 程序员必须使用 Win32 API。他们正在改变背景颜色,所以我也需要知道这一点,但存在一些差异。
在 Delphi 中,每个窗体看起来都有自己的实例,为一个窗口设置背景颜色只是改变一个值的问题。 win32 不是这种情况,当您更改该值时,它会影响使用该类的每个窗口(在更新 ofc 之后)。
我需要做的是清除/删除我的窗口背景。我可以用 FillRect(..) 做到这一点,它工作得很好,但我也发现了 WM_ERASEBKGND这似乎正是我需要的。他们提到,如果这条消息得到处理,我应该返回一个非零值,但他们没有说明如何处理它。
那么除了 FillRect(和类似的)之外还有什么可以让我用我定义的画笔而不是类的默认画笔删除窗口?
谢谢
最佳答案
您只需删除背景即可处理 WM_ERASEBKGND
(使用 FillRect()
即可)。
通过返回非零值,您只是告诉 Windows 此消息已得到处理,无需采取进一步操作。没有比这更正式的了。
关于c++ - 删除窗口背景 win32API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5213952/