GDI+渐变画刷怎么实现两种以上颜色渐变?
GDI+渐变画刷怎么实现两种以上颜色渐变?
两种颜色的渐变很好做
两种颜色以上的呢?
[解决办法]
Graphics g(lpDrawItemStruct-> hDC); //从hDC创建Graphics对象
Rect gRect(rc.left ,rc.top ,rc.Width (),rc.Height ());//从CRect创建Rect对象
Color colors[]={Color::Red ,Color::Yellow ,Color::Blue }; //定义3种颜色
REAL positions[] = {0.0f,0.3f,1.0f}; //定义3种颜色距离起点位置
//创建渐变画刷,初始的颜色值其实无效
LinearGradientBrush lbrush (gRect,Color::Green ,Color::Brown ,LinearGradientModeVertical);
lbrush.SetInterpolationColors (colors,positions,3); //定义多色渐变
g.FillRectangle (&lbrush,gRect); //绘制矩形区域