使用VC ++&amp ;;绘制一条渐变颜色的线条。 MFC

时间:2016-09-23 03:58:29

标签: visual-c++ mfc gdi

我的问题与以下链接相同

Drawing a line with a gradient color

我需要用渐变色绘制曲线。颜色应该从浅蓝色到深蓝色。我需要使用VC ++和MFC。 CPen类似乎只提供使用LOGBRUSH的选项。可以选择使用具有封闭形状的各种渐变画笔,但不能使用线条或曲线。我计划在每段不同阴影的线段中画出曲线,从而形成一个渐变。他们是更容易的方式吗?

1 个答案:

答案 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);

}