DrawFunc.cpp 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. #include "stdafx.h"
  2. void DrawFrame(COLORREF HeightLight, COLORREF ShadowLight, COLORREF FrameColor, CRect rc, CDC* pDC)
  3. {
  4. CBrush NullBrush;
  5. NullBrush.CreateStockObject(NULL_BRUSH);
  6. CBrush* pOldBrush = pDC->SelectObject(&NullBrush);
  7. CPen Pen;
  8. Pen.CreatePen(PS_SOLID, 5, FrameColor);
  9. CPen* pOldPen = pDC->SelectObject(&Pen);
  10. pDC->RoundRect(rc, CPoint(5, 5));
  11. // pDC->Draw3dRect(rc, HeightLight, ShadowLight);
  12. // rc.DeflateRect(1, 1, 1, 1);
  13. // pDC->Draw3dRect(rc, HeightLight, ShadowLight);
  14. pDC->SelectObject(pOldPen);
  15. pDC->SelectObject(pOldBrush);
  16. }
  17. void DrawFace(COLORREF Top, COLORREF Middle, COLORREF Bottom, CRect rc, CDC* pDC)
  18. {
  19. CPen Pen;
  20. CPen* pOldPen = pDC->SelectObject(&Pen);
  21. int halfheight=rc.Height();
  22. int R, G, B;
  23. R = (GetRValue(Top) - GetRValue(Middle)) / halfheight;
  24. G = (GetGValue(Top) - GetGValue(Middle)) / halfheight;
  25. B = (GetBValue(Top) - GetBValue(Middle)) / halfheight;
  26. int ColR = GetRValue(Top), ColG = GetGValue(Top), ColB = GetBValue(Top);
  27. for(int i=0; i<halfheight; i++)
  28. {
  29. ColR -= R;
  30. ColG -= G;
  31. ColB -= B;
  32. Pen.DeleteObject();
  33. Pen.CreatePen(PS_SOLID, 1, RGB(ColR, ColG, ColB));
  34. pDC->SelectObject(&Pen);
  35. pDC->MoveTo(rc.left, rc.top+i);
  36. pDC->LineTo(rc.right, rc.top+i);
  37. }
  38. pDC->SelectObject(pOldPen);
  39. }