zoukankan      html  css  js  c++  java
  • 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. }  
  • 相关阅读:
    CPP--关于long的争议和思考
    CPP--借助神器VS理解内存存储(含大小端对齐)
    1.QT开发第一个程序
    POJ-1456 Supermarket 贪心问题 有时间限制的最小化惩罚问题
    HDU-4310 Hero 贪心问题
    HDU-1789 Doing Homework again 贪心问题 有时间限制的最小化惩罚问题
    HDU-2303 The Embarrassed Cryptographer 高精度算法(大数取模)
    【错题本】刷算法题中出现的一些错误和小技巧
    HDU-2050 折线分割平面 找规律&递推
    记intel杯比赛中各种bug与debug【其五】:朴素贝叶斯分类器的实现和针对性的优化
  • 原文地址:https://www.cnblogs.com/lidabo/p/3701889.html
Copyright © 2011-2022 走看看