2

C# では drawing2d.lineargradientbrush を使用できますが、現在 C++ では CreateSolidBrush 関数しか見つかりませんでした。ネイティブ gdi dll にグラデーション ブラシを作成する関数はありますか? msdn でこのようなものを見つけることができませんでした。ありがとう

4

3 に答える 3

4

垂直グラデーションを描画するには:

void VerticalGradient(HDC hDC, const RECT& GradientFill, 
                      COLORREF rgbTop, COLORREF rgbBottom)
{
    GRADIENT_RECT gradientRect = { 0, 1 };
    TRIVERTEX triVertext[ 2 ] = {
        GradientFill.left - 1,
        GradientFill.top - 1,
        GetRValue(rgbTop) << 8,
        GetGValue(rgbTop) << 8,
        GetBValue(rgbTop) << 8,
        0x0000,         
        GradientFill.right,
        GradientFill.bottom,
        GetRValue(rgbBottom) << 8,
        GetGValue(rgbBottom) << 8,
        GetBValue(rgbBottom) << 8,
        0x0000
    };
    GradientFill(hDC, triVertext, 2, &gradientRect, 1, GRADIENT_FILL_RECT_V);
}
于 2009-09-13T20:17:54.950 に答える
2

C#はDrawing2dにGDI+を使用します。C++でもGDI+を使用できます-MSDN線形グラデーションの作成

于 2009-09-13T18:24:13.847 に答える