void CSTest1View::OnDraw(CDC* pDC)
{
CSTest1Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
// TODO: add draw code for native data here
CRect rcClient;
GetClientRect(&rcClient);
rcClient.DeflateRect(5,5,5,5);
if(m_nMode==0)
{
TRIVERTEX vert[2] ;
GRADIENT_RECT gRect;
vert [0] .x = rcClient.left;
vert [0] .y = rcClient.top;
vert [0] .Red = 0x8000;
vert [0] .Green = 0xc000;
vert [0] .Blue = 0xff00;
vert [0] .Alpha = 0x0000;
vert [1] .x = rcClient.right;
vert [1] .y = rcClient.bottom;
vert [1] .Red = 0xff00;
vert [1] .Green = 0xc000;
vert [1] .Blue = 0x8000;
vert [1] .Alpha = 0x0000;
gRect.UpperLeft = 1;
gRect.LowerRight = 0;
GradientFill(pDC->GetSafeHdc(),vert,2,&gRect,1,GRADIENT_FILL_RECT_V);
}
if(m_nMode==1)
{
TRIVERTEX vert [4] ;
GRADIENT_TRIANGLE gTri[2];
vert [0] .x = rcClient.left;
vert [0] .y = rcClient.top;
vert [0] .Red = 0xff00;
vert [0] .Green = 0xc000;
vert [0] .Blue = 0x8000;
vert [0] .Alpha = 0x0000;
vert [1] .x = rcClient.Width();
vert [1] .y = rcClient.top;
vert [1] .Red = 0x8000;
vert [1] .Green = 0xff00;
vert [1] .Blue = 0x8000;
vert [1] .Alpha = 0x0000;
vert [2] .x = rcClient.CenterPoint().x;
vert [2] .y = rcClient.bottom;
vert [2] .Red = 0x8000;
vert [2] .Green = 0xc000;
vert [2] .Blue = 0xff00;
vert [2] .Alpha = 0x0000;
vert [3] .x = rcClient.CenterPoint().x;
vert [3] .y = rcClient.CenterPoint().y;
vert [3] .Red = 0xff00;
vert [3] .Green = 0x0000;
vert [3] .Blue = 0x0000;
vert [3] .Alpha = 0x0000;
gTri[0].Vertex1 = 0;
gTri[0].Vertex2 = 1;
gTri[0].Vertex3 = 2;
gTri[1].Vertex1 = 0;
gTri[1].Vertex2 = 0;
gTri[1].Vertex3 = 0;
GradientFill(pDC->GetSafeHdc(),vert,4,&gTri,1,GRADIENT_FILL_TRIANGLE);
}
}
VC 实现视图区背景颜色渐变填充
最新推荐文章于 2021-05-21 09:17:37 发布