void CEMCHotButton::DrawGradientRect (CDC *pDC, CRect r, COLORREF cLeft, COLORREF cRight, BOOL bVertical)
{
CRect stepR; // rectangle for color's band
COLORREF color; // color for the bands
float fStep;
if(bVertical)
fStep = ((float)r.Height())/255.0f;
else
fStep = ((float)r.Width())/255.0f; // width of color's band
for (int iOnBand = 0; iOnBand <>
{
// set current band
if(bVertical)
{
SetRect(&stepR,
r.left,
r.top+(int)(iOnBand * fStep),
r.right,
r.top+(int)((iOnBand+1)* fStep));
}
else
{
SetRect(&stepR,
r.left+(int)(iOnBand * fStep),
r.top,
r.left+(int)((iOnBand+1)* fStep),
r.bottom);
}
// set current color
color = RGB((GetRValue(cRight)-GetRValue(cLeft))*((float)iOnBand)/255.0f+GetRValue(cLeft),
(GetGValue(cRight)-GetGValue(cLeft))*((float)iOnBand)/255.0f+GetGValue(cLeft),
(GetBValue(cRight)-GetBValue(cLeft))*((float)iOnBand)/255.0f+GetBValue(cLeft));
// fill current band
pDC->FillSolidRect(stepR,color);
}
}

No comments:
Post a Comment