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

 
  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);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值