最近在为界面库中增加一个单独的换肤功能,自己记录下GDI渐变色的使用方法

来源:互联网 发布:软件评测师招聘 编辑:程序博客网 时间:2024/06/06 17:11
 
  1.     HDC hdc = pDC->GetSafeHdc();
  2.     HRGN hRgn;
  3.     HPEN hPen;
  4.     BOOL bDraw;
  5.     TRIVERTEX Vertex[2];
  6.     GRADIENT_RECT Mesh;
  7.     Vertex[0].x = 50;
  8.     Vertex[0].y = 3;
  9.     Vertex[0].Red = MAKEWORD(0x00, 119);
  10.     Vertex[0].Green = MAKEWORD(0x00, 147);
  11.     Vertex[0].Blue = MAKEWORD(0x00, 227);
  12.     Vertex[0].Alpha = 0x0000;
  13.     Vertex[1].x = 150;
  14.     Vertex[1].y = 15;
  15.     Vertex[1].Red = MAKEWORD(0x00, 55);
  16.     Vertex[1].Green = MAKEWORD(0x00, 82);
  17.     Vertex[1].Blue = MAKEWORD(0x00, 154);
  18.     Vertex[1].Alpha = 0x0000;
  19.     Mesh.UpperLeft = 0;
  20.     Mesh.LowerRight = 1;
  21.     bDraw = ::GradientFill(hdc, Vertex, 2, &Mesh, 1, GRADIENT_FILL_RECT_V);
  22.     Vertex[0].x = 50;
  23.     Vertex[0].y = 15;
  24.     Vertex[0].Red = MAKEWORD(0x00, 39);
  25.     Vertex[0].Green = MAKEWORD(0x00, 65);
  26.     Vertex[0].Blue = MAKEWORD(0x00, 137);
  27.     Vertex[0].Alpha = 0x0000;
  28.     Vertex[1].x = 150;
  29.     Vertex[1].y = 29;
  30.     Vertex[1].Red = MAKEWORD(0x00, 14);
  31.     Vertex[1].Green = MAKEWORD(0x00, 36);
  32.     Vertex[1].Blue = MAKEWORD(0x00, 104);
  33.     Vertex[1].Alpha = 0x0000;
  34.     Mesh.UpperLeft = 0;
  35.     Mesh.LowerRight = 1;
  36.     bDraw = ::GradientFill(hdc, Vertex, 2, &Mesh, 1, GRADIENT_FILL_RECT_V);
  37.     //58, 84, 155;
  38.     //144, 173, 254;
  39.     hPen = ::CreatePen(PS_SOLID, 1, RGB(58, 84, 155));
  40.     ::SelectObject(hdc, hPen);
  41.     ::MoveToEx(hdc, 50, 1, NULL);
  42.     ::LineTo(hdc, 150, 1);
  43.     hPen = ::CreatePen(PS_SOLID, 1, RGB(144, 173, 254));
  44.     ::SelectObject(hdc, hPen);
  45.     ::MoveToEx(hdc, 50, 2, NULL);
  46.     ::LineTo(hdc, 150, 2);
原创粉丝点击