void CGDIxOper::GradientFillRect( HDC hDC, RECT & rect, COLORREF col_from, COLORREF col_to, bool vert_grad )
{
TRIVERTEX        vert[2];
GRADIENT_RECT    mesh;

vert[0].x      = rect.left;
vert[0].y      = rect.top;
vert[0].Alpha  = 0x0000;
vert[0].Blue   = GetBValue(col_from) << 8;
vert[0].Green  = GetGValue(col_from) << 8;
vert[0].Red    = GetRValue(col_from) << 8;

vert[1].x      = rect.right;
vert[1].y      = rect.bottom; 
vert[1].Alpha  = 0x0000;
vert[1].Blue   = GetBValue(col_to) << 8;
vert[1].Green  = GetGValue(col_to) << 8;
vert[1].Red    = GetRValue(col_to) << 8;

mesh.UpperLeft  = 0;
mesh.LowerRight = 1; GradientFill( hDC, vert, 2, &mesh, 1, vert_grad ? GRADIENT_FILL_RECT_V : GRADIENT_FILL_RECT_H );
}