2016-09-23 116 views
0

漸變顏色的線我的問題是相同下面的鏈接繪製與VC++&MFC

Drawing a line with a gradient color

我需要繪製漸變顏色的曲線。顏色應該從淺藍色到深藍色。我需要使用VC++和MFC來完成。 CPen類似乎只提供使用LOGBRUSH的選項。有多種選項可以使用各種漸變刷具有封閉的形狀,但不適用於線條或曲線。我有計劃畫出一小段線條的曲線,每段不同的陰影形成一個漸變。他們有更簡單的方法嗎?

+0

我建議你用點而不是行去。 MSDN中的示例將幫助您「https://msdn.microsoft.com/en-us/library/windows/desktop/ms536070(v=vs.85).aspx」 –

+0

@SantoshDhanawade鏈接無法正常工作。 – Ram

+0

https://msdn.microsoft.com/en-us/library/windows/desktop/ms536070(v=vs.85).aspx –

回答

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

}