我正在使用gdi +和c ++。
我对SolidBrush有疑问。
如何克隆SolidBrush?

SolidBrush* oldBrush xxx;
Brush* newBrush = oldBrush->Clone();


我发现newBrush是一个Brush Object。
这意味着如果我使用dynamic_cast<SolidBrush>(newBursh),我将始终为NULL。

我阅读了gdi + SolidBrush的.h文件,似乎使用了Brush的虚拟Clone方法,但不要覆盖它!

为什么?

感谢您的解决方案,但是我还有问题吗?为什么SolidBrush不实现克隆方法?

最佳答案

Brush可以做SolidBrush可以做的所有事情。 SolidBrush是创建纯色Brush的便捷方法。

这是从this example at MSDN派生的示例:

SolidBrush solidBrush(Color(255,255,0,0));
Brush *clone = solidBrush.Clone();


然后,您可以像其他画笔一样继续使用clone,并且其行为与solidBrush完全相同。

关于c++ - 如何在GDI + C++中克隆Solidbrush,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/838238/

10-10 17:03