使用 VC++ 和 MFC 绘制具有渐变颜色的线条

Drawing a line with a gradient color with VC++ & MFC

我的问题和下面的一样link

Drawing a line with a gradient color

我需要画一条渐变色的曲线。颜色应该从浅蓝色到深色 blue.I 需要使用 VC++ 和 MFC 来完成。 CPen class 似乎只提供使用 LOGBRUSH 的选项。可以选择使用具有闭合形状但不具有直线或曲线的各种渐变画笔。我计划用不同阴影的每段线段绘制曲线,从而形成渐变。他们有更简单的方法吗?

您可以使用 Gdi+

首先你需要初始化 Gdi+ 参见这个例子

#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);

}