【发布时间】:2011-07-09 23:52:43
【问题描述】:
我的同学们开始使用 Delphi 和 pascal,但我作为 c++ 程序员必须使用 win32 API。他们正在改变背景颜色,所以我也需要知道这一点,但有一些不同之处。
在 delphi 中,每个表单看起来都有自己的实例,为一个窗口设置背景颜色只是更改一个值的问题。 win32 的情况并非如此,当您更改该值时,它会影响使用该类的每个窗口(更新 ofc 之后)。
我需要做的是清除/擦除我的窗口背景。我可以用 FillRect(..) 做到这一点,它工作得很好,但我还发现 WM_ERASEBKGND 似乎正是我需要的。他们提到如果这条消息被处理,我应该返回一个非零值,但他们没有告诉如何处理它。
那么除了 FillRect(和类似的)之外,还有什么可以让我用我定义的画笔而不是类的默认值来擦除窗口吗?
谢谢
【问题讨论】:
-
如果你想在这个低级别学习 Win API,你应该拿起 Charles Petzold (amazon.com/Programming-Windows-3-1-Charles-Petzold/dp/…) 的“Programming Windows 3.1”的旧副本,看看 Windows 编程是从哪里开始的。
-
从哪里开始的?它今天仍然在哪里。只是我们用做脏活的框架来包装它。
-
@David - 这就是我的意思,但我没有很好地表达它:)
标签: c++ winapi background erase