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

 

[cpp] view plaincopy
 
    1. void CSTest1View::OnDraw(CDC* pDC)  
    2. {  
    3.     CSTest1Doc* pDoc = GetDocument();  
    4.     ASSERT_VALID(pDoc);  
    5.     // TODO: add draw code for native data here  
    6.   
    7.     CRect rcClient;  
    8.     GetClientRect(&rcClient);  
    9.     rcClient.DeflateRect(5,5,5,5);  
    10.   
    11.     if(m_nMode==0)  
    12.     {  
    13.         TRIVERTEX        vert[2] ;  
    14.         GRADIENT_RECT    gRect;  
    15.         vert [0] .x      = rcClient.left;  
    16.         vert [0] .y      = rcClient.top;  
    17.         vert [0] .Red    = 0x8000;  
    18.         vert [0] .Green  = 0xc000;  
    19.         vert [0] .Blue   = 0xff00;  
    20.         vert [0] .Alpha  = 0x0000;  
    21.           
    22.         vert [1] .x      = rcClient.right;  
    23.         vert [1] .y      = rcClient.bottom;   
    24.         vert [1] .Red    = 0xff00;  
    25.         vert [1] .Green  = 0xc000;  
    26.         vert [1] .Blue   = 0x8000;  
    27.         vert [1] .Alpha  = 0x0000;  
    28.           
    29.         gRect.UpperLeft  = 1;  
    30.         gRect.LowerRight = 0;  
    31.         GradientFill(pDC->GetSafeHdc(),vert,2,&gRect,1,GRADIENT_FILL_RECT_V);  
    32.     }  
    33.       
    34.     if(m_nMode==1)  
    35.     {  
    36.         TRIVERTEX        vert [4] ;  
    37.         GRADIENT_TRIANGLE    gTri[2];  
    38.         vert [0] .x       =  rcClient.left;  
    39.         vert [0] .y       =  rcClient.top;  
    40.         vert [0] .Red     =  0xff00;  
    41.         vert [0] .Green   =  0xc000;  
    42.         vert [0] .Blue    =  0x8000;  
    43.         vert [0] .Alpha   =  0x0000;  
    44.           
    45.         vert [1] .x       =  rcClient.Width();  
    46.         vert [1] .y       =  rcClient.top;  
    47.         vert [1] .Red     =  0x8000;  
    48.         vert [1] .Green   =  0xff00;  
    49.         vert [1] .Blue    =  0x8000;  
    50.         vert [1] .Alpha   =  0x0000;  
    51.           
    52.         vert [2] .x       =  rcClient.CenterPoint().x;  
    53.         vert [2] .y       =  rcClient.bottom;   
    54.         vert [2] .Red     =  0x8000;  
    55.         vert [2] .Green   =  0xc000;  
    56.         vert [2] .Blue    =  0xff00;  
    57.         vert [2] .Alpha   =  0x0000;  
    58.           
    59.           
    60.         vert [3] .x       =  rcClient.CenterPoint().x;  
    61.         vert [3] .y       =  rcClient.CenterPoint().y;  
    62.         vert [3] .Red     =  0xff00;  
    63.         vert [3] .Green   =  0x0000;  
    64.         vert [3] .Blue    =  0x0000;  
    65.         vert [3] .Alpha   =  0x0000;  
    66.                   
    67.         gTri[0].Vertex1   = 0;  
    68.         gTri[0].Vertex2   = 1;  
    69.         gTri[0].Vertex3   = 2;  
    70.           
    71.         gTri[1].Vertex1   = 0;  
    72.         gTri[1].Vertex2   = 0;  
    73.         gTri[1].Vertex3   = 0;  
    74.         GradientFill(pDC->GetSafeHdc(),vert,4,&gTri,1,GRADIENT_FILL_TRIANGLE);  
    75.   
    76.     }  
    77.       
    78. }  
上一篇:[JS9] document's bgColor改变背景颜色


下一篇:Android GridView子元素item按击交互设计:背景颜色改变