XTPSyntaxEditColorSampleText.cpp
上传用户:szled88
上传日期:2015-04-09
资源大小:43957k
文件大小:4k
源码类别:

对话框与窗口

开发平台:

Visual C++

  1. // XTPSyntaxEditColorSampleText.cpp : implementation file
  2. //
  3. // This file is a part of the XTREME TOOLKIT PRO MFC class library.
  4. // (c)1998-2008 Codejock Software, All Rights Reserved.
  5. //
  6. // THIS SOURCE FILE IS THE PROPERTY OF CODEJOCK SOFTWARE AND IS NOT TO BE
  7. // RE-DISTRIBUTED BY ANY MEANS WHATSOEVER WITHOUT THE EXPRESSED WRITTEN
  8. // CONSENT OF CODEJOCK SOFTWARE.
  9. //
  10. // THIS SOURCE CODE CAN ONLY BE USED UNDER THE TERMS AND CONDITIONS OUTLINED
  11. // IN THE XTREME SYNTAX EDIT LICENSE AGREEMENT. CODEJOCK SOFTWARE GRANTS TO
  12. // YOU (ONE SOFTWARE DEVELOPER) THE LIMITED RIGHT TO USE THIS SOFTWARE ON A
  13. // SINGLE COMPUTER.
  14. //
  15. // CONTACT INFORMATION:
  16. // support@codejock.com
  17. // http://www.codejock.com
  18. //
  19. /////////////////////////////////////////////////////////////////////////////
  20. #include "stdafx.h"
  21. #include "Resource.h"
  22. // common includes
  23. #include "Common/XTPDrawHelpers.h"
  24. // syntax editor includes
  25. #include "XTPSyntaxEditColorSampleText.h"
  26. #ifdef _DEBUG
  27. #define new DEBUG_NEW
  28. #undef THIS_FILE
  29. static char THIS_FILE[] = __FILE__;
  30. #endif
  31. /////////////////////////////////////////////////////////////////////////////
  32. // CXTPSyntaxEditColorSampleText
  33. CXTPSyntaxEditColorSampleText::CXTPSyntaxEditColorSampleText()
  34. : m_crBack(::GetSysColor(COLOR_WINDOW))
  35. , m_crText(::GetSysColor(COLOR_WINDOWTEXT))
  36. , m_crBorder(::GetSysColor(COLOR_3DDKSHADOW))
  37. {
  38. }
  39. CXTPSyntaxEditColorSampleText::~CXTPSyntaxEditColorSampleText()
  40. {
  41. }
  42. BEGIN_MESSAGE_MAP(CXTPSyntaxEditColorSampleText, CStatic)
  43. //{{AFX_MSG_MAP(CXTPSyntaxEditColorSampleText)
  44. ON_WM_PAINT()
  45. ON_WM_NCPAINT()
  46. ON_WM_SYSCOLORCHANGE()
  47. ON_WM_ENABLE()
  48. //}}AFX_MSG_MAP
  49. END_MESSAGE_MAP()
  50. /////////////////////////////////////////////////////////////////////////////
  51. // CXTPSyntaxEditColorSampleText message handlers
  52. void CXTPSyntaxEditColorSampleText::OnNcPaint()
  53. {
  54. CWindowDC dc(this);
  55. CXTPWindowRect rc(this);
  56. rc.OffsetRect(-rc.TopLeft());
  57. dc.Draw3dRect(rc, GetBorderColor(), GetBorderColor());
  58. rc.DeflateRect(1,1);
  59. dc.Draw3dRect(rc, GetBackColor(), GetBackColor());
  60. }
  61. void CXTPSyntaxEditColorSampleText::OnPaint()
  62. {
  63. CPaintDC dc(this); // device context for painting
  64. CXTPClientRect rc(this);
  65. dc.FillSolidRect(&rc, GetBackColor());
  66. CString csText;
  67. GetWindowText(csText);
  68. dc.SetBkColor(GetBackColor());
  69. dc.SetTextColor(GetTextColor());
  70. CXTPFontDC fontDC(&dc, GetFont());
  71. dc.DrawText(csText, &rc, DT_SINGLELINE | DT_VCENTER | DT_CENTER);
  72. }
  73. void CXTPSyntaxEditColorSampleText::Refresh()
  74. {
  75. if (::IsWindow(m_hWnd))
  76. {
  77. RedrawWindow(NULL, NULL, RDW_UPDATENOW | RDW_ALLCHILDREN | RDW_FRAME |
  78. RDW_INVALIDATE | RDW_ERASE);
  79. }
  80. }
  81. void CXTPSyntaxEditColorSampleText::SetTextColor(COLORREF crText)
  82. {
  83. m_crText = crText;
  84. Refresh();
  85. }
  86. COLORREF CXTPSyntaxEditColorSampleText::GetTextColor() const
  87. {
  88. return (IsWindowEnabled()? m_crText: ::GetSysColor(COLOR_GRAYTEXT));
  89. }
  90. void CXTPSyntaxEditColorSampleText::SetBackColor(COLORREF crBack)
  91. {
  92. m_crBack = crBack;
  93. Refresh();
  94. }
  95. COLORREF CXTPSyntaxEditColorSampleText::GetBackColor() const
  96. {
  97. return (IsWindowEnabled()? m_crBack: ::GetSysColor(COLOR_3DFACE));
  98. }
  99. void CXTPSyntaxEditColorSampleText::SetBorderColor(COLORREF crBorder)
  100. {
  101. m_crBorder = crBorder;
  102. Refresh();
  103. }
  104. COLORREF CXTPSyntaxEditColorSampleText::GetBorderColor() const
  105. {
  106. return (IsWindowEnabled()? m_crBorder: ::GetSysColor(COLOR_GRAYTEXT));
  107. }
  108. void CXTPSyntaxEditColorSampleText::OnEnable(BOOL bEnable)
  109. {
  110. CWnd::OnEnable(bEnable);
  111. Refresh();
  112. }
  113. void CXTPSyntaxEditColorSampleText::OnSysColorChange()
  114. {
  115. CStatic::OnSysColorChange();
  116. m_crBack.SetStandardValue(::GetSysColor(COLOR_WINDOW));
  117. m_crText.SetStandardValue(::GetSysColor(COLOR_WINDOWTEXT));
  118. m_crBorder.SetStandardValue(::GetSysColor(COLOR_3DDKSHADOW));
  119. }