我的问题与以下链接相同
Drawing a line with a gradient color
我需要用渐变色绘制曲线。颜色应该从浅蓝色到深蓝色。我需要使用VC ++和MFC。 CPen类似乎只提供使用LOGBRUSH的选项。可以选择使用具有封闭形状的各种渐变画笔,但不能使用线条或曲线。我计划在每段不同阴影的线段中画出曲线,从而形成一个渐变。他们是更容易的方式吗?
答案 0 :(得分:1)
您可以使用Gdi+
执行此操作首先,您需要初始化Gdi +请参阅此示例link。
#include <Gdiplus.h>
using namespace Gdiplus;
...
struct GdiplusInit {
GdiplusInit() {
GdiplusStartupInput inp;
GdiplusStartupOutput outp;
GdiplusStartup(&token_, &inp, &outp);
}
~GdiplusInit() {
GdiplusShutdown(token_);
}
private:
ULONG_PTR token_;
} gdiplusInit; //This will initialize Gdi+ once, and shuts it down on exit
要复制问题中的C#示例:
void CMyWnd::OnPaint()
{
CPaintDC dc(this);
Graphics gr(dc);
Point x = Point(0, 0);
Point y = Point(100, 100);
LinearGradientBrush brush(x, y, Color(255, 255, 255), Color(255, 0, 0));
Gdiplus::Pen pen(&brush, 2.0f);
gr.DrawLine(&pen, x, y);
}