【发布时间】:2011-06-29 13:53:27
【问题描述】:
我已经在下面的代码的帮助下在 C++ Builder XE 中绘制了一个自定义绘图,但现在我想用渐变填充颜色填充它。
PaintBox1->Canvas->Pen->Color = RGB (187, 187, 187);
PaintBox1->Canvas->MoveTo(0, 8);
PaintBox1->Canvas->LineTo(10, 0);
PaintBox1->Canvas->LineTo(10, 5);
PaintBox1->Canvas->LineTo(21, 5);
PaintBox1->Canvas->MoveTo(0, 8);
PaintBox1->Canvas->LineTo(10, 15);
PaintBox1->Canvas->LineTo(10, 10);
PaintBox1->Canvas->LineTo(21, 10);
PaintBox1->Canvas->LineTo(21, 5);
【问题讨论】:
-
这很容易。要么您自己使用
Scanline属性(并且,看在上帝的份上,让我对此更加清楚:不 使用Pixels属性!),或者您使用 GDI+ @ 987654321@函数。 -
PaintBox 有扫描线,什么?
-
@Downvoter 步入光明:然后从屏幕外的
TBitmapBitBlt。 -
@Andreas:用 ScanLine 做吗?当然,为此实施您自己的填充算法(如果这就是您的意思)是矫枉过正的。 @dschaeffer 对 GDI GradientFill 和裁剪区域的建议对我来说似乎更简单、更可靠,而且可能更快。
-
@David M:dschaeffer 的解决方案是基于我建议的
GradientFill函数。
标签: delphi colors c++builder gradient c++builder-xe