使用 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);
}
我的问题和下面的一样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);
}