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

对话框与窗口

开发平台:

Visual C++

  1. // XTPMarkupBorder.h: interface for the CXTPMarkupBorder class.
  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 TOOLKIT PRO 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. #if !defined(__XTPMARKUPBORDER_H__)
  21. #define __XTPMARKUPBORDER_H__
  22. #if _MSC_VER > 1000
  23. #pragma once
  24. #endif // _MSC_VER > 1000
  25. #include "XTPMarkupDecorator.h"
  26. class CXTPMarkupBrush;
  27. class CXTPMarkupBuilder;
  28. class _XTP_EXT_CLASS CXTPMarkupBorder : public CXTPMarkupDecorator
  29. {
  30. DECLARE_MARKUPCLASS(CXTPMarkupBorder);
  31. protected:
  32. CXTPMarkupBorder();
  33. virtual ~CXTPMarkupBorder();
  34. public:
  35. void SetPadding(int nLeft, int nTop, int nRight, int nBottom);
  36. void SetPadding(int nPadding);
  37. CXTPMarkupThickness* GetPadding() const;
  38. void SetBorderThickness(int nLeft, int nTop, int nRight, int nBottom);
  39. void SetBorderThickness(int nBorderThickness);
  40. CXTPMarkupThickness* GetBorderThickness() const;
  41. void SetBackground(CXTPMarkupBrush* brush);
  42. CXTPMarkupBrush* GetBackground() const;
  43. void SetBorderBrush(CXTPMarkupBrush* brush);
  44. CXTPMarkupBrush* GetBorderBrush() const;
  45. protected:
  46. virtual CSize MeasureOverride(CXTPMarkupDrawingContext* pDC, CSize szAvailableSize);
  47. virtual CSize ArrangeOverride(CSize szFinalSize);
  48. virtual void OnRender(CXTPMarkupDrawingContext* drawingContext);
  49. virtual CXTPMarkupInputElement* InputHitTestOverride(CPoint point) const;
  50. public:
  51. static CXTPMarkupDependencyProperty* m_pBackgroundProperty;
  52. static CXTPMarkupDependencyProperty* m_pBorderThicknessProperty;
  53. static CXTPMarkupDependencyProperty* m_pPaddingProperty;
  54. static CXTPMarkupDependencyProperty* m_pBorderBrushProperty;
  55. };
  56. AFX_INLINE void CXTPMarkupBorder::SetPadding(int nLeft, int nTop, int nRight, int nBottom) {
  57. SetValue(m_pPaddingProperty, new CXTPMarkupThickness(nLeft, nTop, nRight, nBottom));
  58. }
  59. AFX_INLINE void CXTPMarkupBorder::SetPadding(int padding) {
  60. SetValue(m_pPaddingProperty, new CXTPMarkupThickness(padding));
  61. }
  62. AFX_INLINE CXTPMarkupThickness* CXTPMarkupBorder::GetPadding() const {
  63. return  MARKUP_STATICCAST(CXTPMarkupThickness, GetValue(m_pPaddingProperty));
  64. }
  65. AFX_INLINE void CXTPMarkupBorder::SetBorderThickness(int nLeft, int nTop, int nRight, int nBottom) {
  66. SetValue(m_pBorderThicknessProperty, new CXTPMarkupThickness(nLeft, nTop, nRight, nBottom));
  67. }
  68. AFX_INLINE void CXTPMarkupBorder::SetBorderThickness(int padding) {
  69. SetValue(m_pBorderThicknessProperty, new CXTPMarkupThickness(padding));
  70. }
  71. AFX_INLINE CXTPMarkupThickness* CXTPMarkupBorder::GetBorderThickness() const {
  72. return  MARKUP_STATICCAST(CXTPMarkupThickness, GetValue(m_pBorderThicknessProperty));
  73. }
  74. #endif // !defined(__XTPMARKUPBORDER_H__)