2009-09-13 7 views
2

En C#, vous pouvez utiliser drawing2d.lineargradientbrush, mais en C++ maintenant, je n'ai trouvé que la fonction CreateSolidBrush. Existe-t-il une fonction dans le dll gdi natif pour créer une brosse de gradient? Je n'ai pas pu trouver quelque chose comme ça à msdn. MerciPinceau dégradé en C++ natif?

Répondre

4

Pour dessiner un gradient vertical:

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); 
} 
Questions connexes