VC 实现视图区背景颜色渐变填充
2014-04-30 17:51
405 查看
[cpp] view plaincopy
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);
}
}
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 实现视图区背景颜色渐变填充
- 视图背景颜色渐变的两种实现方式
- 如何使用css实现背景颜色渐变
- vc具有背景颜色和文字颜色的只读属性的EDIT控件的实现
- 用CSS实现表格背景颜色渐变效果
- IE8和IE9使用filter实现渐变背景时的颜色问题
- Android 使用xml实现边框阴影,背景渐变效果(附有RGB颜色查询对照表)
- CSS3实现背景颜色渐变 摘抄
- jQuery实现的背景颜色渐变动画效果示例
- VC++颜色渐变实现的3种方法
- VC++窗体背景颜色渐变 .
- div背景颜色怎样渐变 css实现div层背景颜色渐变代码
- Android之简单背景颜色渐变实现
- CSS3实现背景颜色渐变 摘抄
- CAGradientLayer 实现背景颜色的渐变
- 实现背景颜色的渐变效果(code project)
- CSS实现网页背景颜色渐变的效果。
- VC6,SDI视图改变背景颜色的方法
- 用CSS实现表格背景颜色渐变效果
- android Button 切换背景,实现动态按钮和按钮颜色渐变