填充效果如下:
P1, P2, P3为三角形三个点
cP1, cP2, cP3为三角形三点所指定的颜色。
void DrawTriangle(CDC *pDC,POINT P1,POINT P2,POINT P3,
COLORREF cP1,COLORREF cP2,COLORREF cP3)
{
TRIVERTEX vert [4] ;
vert [0] .x = P1.x;
vert [0] .y = P1.y;
vert [0].Red=GetRValue(cP1)<<8;
vert [0].Green=GetGValue(cP1)<<8;
vert [0].Blue=GetBValue(cP1)<<8;
vert [0] .Alpha = 0;
vert [1] .x = P2.x;
vert [1] .y = P2.y;
vert [1].Red=GetRValue(cP2)<<8;
vert [1].Green=GetGValue(cP2)<<8;
vert [1].Blue=GetBValue(cP2)<<8;
vert [1] .Alpha = 0;
vert [2] .x = P3.x;
vert [2] .y = P3.y;
vert [2].Red=GetRValue(cP3)<<8;
vert [2].Green=GetGValue(cP3)<<8;
vert [2].Blue=GetBValue(cP3)<<8;
vert [2] .Alpha = 0;
_GRADIENT_TRIANGLE gTRi[1];
gTRi[0].Vertex1 = 0;
gTRi[0].Vertex2 = 1;
gTRi[0].Vertex3 = 2;
handle_GradientFill(pDC->GetSafeHdc(),vert,4,&gTRi,1,GRADIENT_FILL_TRIANGLE);
}