VC 实现视图区背景颜色渐变填充

 
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);

	}
	
}

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值