我现在正在为 Windows api 编写一个 GUI 包装器(我不能使用 qt 或 mfc)。图书馆本身非常基础。在对 Windows 公共(public)控件进行子类化(并将它们包装到类中)之后,我遇到了一个问题。据我所知(我希望我是错的),只有父控件可以处理像 WM_CTLCOLOREDIT 之类的消息。但我希望能够写出这样的东西:
myedit->SetBkColor ( RGB ( 0, 0, 0 ) );
是否可以完全实现(例如在 Windows 窗体中),或者我应该从头开始编写一个新的控件,然后自己写画?
谢谢你,#535。
最佳答案
您可以做到,但这是一项相当大的工作量。基本思想是您创建另一个窗口作为您子类化的控件的父窗口。这样,您就可以跟踪通知消息(例如 WM_CTLCOLOREDIT)是由父控件还是由子类控件本身处理的。如果它由父级处理,它只是传递消息,但如果它应该由子类控件本身处理,它会将消息反射回控件。
关于c++ - 是否可以在编辑中更改编辑控件的背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1590905/