我正在使用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/