CaptionBackground.cpp
上传用户:kssdz899
上传日期:2007-01-08
资源大小:79k
文件大小:2k
源码类别:

钩子与API截获

开发平台:

Visual C++

  1. #include "stdafx.h"
  2. #include "CaptionBackground.h"
  3. //////////////////
  4. // Helper to paint rectangle with a color.
  5. //
  6. CCaptionBackground::CCaptionBackground()
  7. :m_ActiveColor(-1), m_InactiveColor(-1)
  8. {
  9. }
  10. CCaptionBackground::CCaptionBackground(const CCaptionBackground& cb)
  11. :m_ActiveColor(cb.m_ActiveColor), m_InactiveColor(cb.m_InactiveColor)
  12. {
  13. }
  14. void CCaptionBackground::SetCustomColors(const CCaptionBackground& cb)
  15. {
  16. SetActiveColor(cb.m_ActiveColor);
  17. SetInactiveColor(cb.m_InactiveColor);
  18. }
  19. void CCaptionBackground::SetCustomColors(COLORREF activeColor, COLORREF inactiveColor)
  20. {
  21. SetActiveColor(activeColor);
  22. SetInactiveColor(inactiveColor);
  23. }
  24. void CCaptionBackground::SetActiveColor(COLORREF activeColor)
  25. {
  26. m_ActiveColor = activeColor;
  27. }
  28. void CCaptionBackground::SetInactiveColor(COLORREF inactiveColor)
  29. {
  30. m_InactiveColor = inactiveColor;
  31. }
  32. void CCaptionBackground::UseSystemColors()
  33. {
  34. UseSystemActiveColor();
  35. UseSystemInactiveColor();
  36. }
  37. void CCaptionBackground::UseSystemActiveColor()
  38. {
  39. m_ActiveColor = -1;
  40. }
  41. void CCaptionBackground::UseSystemInactiveColor()
  42. {
  43. m_InactiveColor = -1;
  44. }
  45. COLORREF CCaptionBackground::GetActiveColor() const
  46. {
  47. return m_ActiveColor == -1 ? GetSysColor(COLOR_ACTIVECAPTION) : m_ActiveColor;
  48. }
  49. COLORREF CCaptionBackground::GetInactiveColor() const
  50. {
  51. return m_InactiveColor == -1 ? GetSysColor(COLOR_INACTIVECAPTION) : m_InactiveColor;
  52. }
  53. void CCaptionBackground::Paint(CDC* pDC, CSize paintArea, BOOL active)
  54. {
  55. PaintRect(pDC, 0, 0, paintArea.cx, paintArea.cy, active ? GetActiveColor() : GetInactiveColor());
  56. }
  57. // Paint the color into the rectangle dimensions on the device context
  58. void CCaptionBackground::PaintRect(CDC* pDC, int x, int y, int w, int h, COLORREF color)
  59. {
  60. CBrush brush(color);
  61. CBrush* pOldBrush = pDC->SelectObject(&brush);
  62. pDC->PatBlt(x, y, w, h, PATCOPY);
  63. pDC->SelectObject(pOldBrush);
  64. }