很喜欢vs2005和office2003里面的工具栏颜色配置,看起来他的那个颜色是有渐变效果的,我知道用gdi+可以很方便绘制渐变效果,但是要想得到类似office2003中的那种效果应该怎么弄呢?? 我对界面编程不是很行,那位大哥大姐知道的能不能给的提示,比如说在gdi+中如何去实现这样的渐变,渐变的梯度应该是如何设置的。我用photoshop来看RGB,怎么都找不准
调试欢乐多
GDI:GradientFill& so so.More information? MSDN!
几种方法:
GDI
使用一个循环,使用一个连续变化的颜色和FillRect方法来填充一个移动Rect区域,但需要你对颜色有很好的把握GradientFill函数,这个函数不太好操作。GDI+
class LinearGradientBrush生成一个渐变画刷。
我就是对颜色不感冒啊,所以才看看大家有没有做过,绘制渐变的方法我知道,关键就是这个颜色的把握上,我很迟钝
{
TRIVERTEX vert[2];
vert[0].x = lpRect->left;
vert[0].y = lpRect->top;
vert[0].Red = GetRValue(crFrom) << 8;
vert[0].Green = GetGValue(crFrom) << 8;
vert[0].Blue = GetBValue(crFrom) << 8;
vert[0].Alpha = 0x0000; vert[1].x = lpRect->right;
vert[1].y = lpRect->bottom;
vert[1].Red = GetRValue(crTo) << 8;
vert[1].Green = GetGValue(crTo) << 8;
vert[1].Blue = GetBValue(crTo) << 8;
vert[1].Alpha = 0x0000;
GRADIENT_RECT gRect = { 0, 1 }; return GradientFill(pDCDest->GetSafeHdc(), vert, 2, &gRect, 1, bHorz ? GRADIENT_FILL_RECT_H : GRADIENT_FILL_RECT_V);
}
GDI:GradientFill
谢谢你提供的代码,我看了效果了,正是我想要的,再次感谢