c++ - 删除窗口背景 win32API

标签 c++ winapi background erase

我的同学开始使用 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/

相关文章:

c++ - wxWidgets 显示来自 8 位数组的位图

java - 如何让 Hadoop 命令行脚本在 Win32 上运行?

CSS 背景图像在 x 左和 x 右上重复而不重叠

CSS背景三 Angular 形3种颜色

c++ - 从程序中获取编译器选项

c++ - Windows网络包修改

c# - Windows 8 中的 Metro 应用程序如何与同一台计算机上的后端桌面应用程序通信?

windows - 修复 Windows 10 中最小化/最大化/关闭下的黑色工具提示背景

C++ 列表字符获取问题,内存分配错误?

c++ - boost::optional 返回一个 bool 值并不总是有效