RepElement.h
上传用户:jimmy1212
上传日期:2020-11-02
资源大小:40k
文件大小:4k
源码类别:

Static控件

开发平台:

Visual C++

  1. /*******************************************************************************
  2.  * RepElement.h: interface for the CElement class.
  3.  *
  4.  * MFC Quick! report class
  5.  *
  6.  * Written by Vipul Lal <vipul@hotmail.com>
  7.  * Copyright (c) 2000-2002. All Rights Reserved.
  8.  *
  9.  * This code may be used in compiled form in any way you desire. This
  10.  * file may be redistributed unmodified by any means PROVIDING it is 
  11.  * not sold for profit without the authors written consent, and 
  12.  * providing that this notice and the authors name and all copyright 
  13.  * notices remains intact. 
  14.  *
  15.  * An email letting me know how you are using it would be nice too. 
  16.  *
  17.  * This file is provided "as is" with no expressed or implied warranty.
  18.  * The author accepts no liability for any damage/loss of business that
  19.  * this product may cause.
  20.  *
  21.  * For use with RTElement.h v1.00
  22.  *
  23.  *******************************************************************************/
  24. #if !defined(_REPELEMENT_H_B1A00117_DB1B_4E6F_832F_D1394FCF5CF6)
  25. #define _REPELEMENT_H_B1A00117_DB1B_4E6F_832F_D1394FCF5CF6
  26. #if _MSC_VER > 1000
  27. #pragma once
  28. #endif // _MSC_VER > 1000
  29. /***********************************************************************
  30.  *
  31.  * CElement class encapsulates the functionality required for an 
  32.  * element in a report. 
  33.  *
  34.  **********************************************************************/
  35. class CElement : public CObject  
  36. {
  37. DECLARE_SERIAL( CElement )
  38. virtual void Serialize(CArchive & ar);
  39. protected:
  40. CEasyReport *m_DocPtr; // ptr to the document
  41. CRect m_Frame; // frame within which we have to draw
  42. CElement();
  43. public:
  44. CElement(CRect *inFrame);
  45. virtual ~CElement();
  46. virtual void SetDocPtr(CEasyReport *inDoc)
  47. {
  48. m_DocPtr = inDoc;
  49. }
  50. virtual void Draw(CDC *inDC);
  51. };
  52. /***********************************************************************
  53.  *
  54.  * CTextBox class is a text element in the report
  55.  *
  56.  **********************************************************************/
  57. class CTextBox : public CElement
  58. {
  59. DECLARE_SERIAL( CTextBox )
  60. virtual void Serialize(CArchive & ar);
  61. protected:
  62. CTextBox(); // default constructor is protected and used only while seralizing
  63. int m_FontIndex;
  64. CString m_Text;
  65. int m_Align;
  66. public:
  67. CTextBox( CRect *inRect, const char *inStr, int inFontIndex, int inAlign = DT_LEFT )
  68. : CElement(inRect), m_Text(inStr), m_FontIndex(inFontIndex)
  69. {
  70. m_Align = inAlign;
  71. }
  72. virtual ~CTextBox();
  73. void SetAlign(int inAlign) { m_Align = inAlign;}
  74. virtual void Draw(CDC *inDC);
  75. };
  76. /***********************************************************************
  77.  *
  78.  * CPageNum class is a page number field in the report
  79.  *
  80.  **********************************************************************/
  81. class CPageNum : public CTextBox
  82. {
  83. DECLARE_SERIAL( CPageNum )
  84. virtual void Serialize(CArchive & ar);
  85. protected:
  86. CPageNum(); // default constructor is protected and used only while seralizing
  87. public:
  88. CPageNum( CRect *inRect, int inFontIndex, int inAlign = DT_CENTER )
  89. : CTextBox(inRect, "", inFontIndex, inAlign )
  90. {
  91. }
  92. virtual ~CPageNum();
  93. virtual void Draw(CDC *inDC);
  94. };
  95. /***********************************************************************
  96.  *
  97.  * CHline class is a horizontal line on the report
  98.  *
  99.  **********************************************************************/
  100. class CHline : public CElement
  101. {
  102. DECLARE_SERIAL( CHline )
  103. virtual void Serialize(CArchive & ar);
  104. protected:
  105. CHline(); // default constructor is protected and used only while seralizing
  106. int m_PenStyle;
  107. public:
  108. CHline( CRect *inRect, int inStyle )
  109. : CElement(inRect),
  110. m_PenStyle(inStyle)
  111. {
  112. }
  113. virtual ~CHline();
  114. virtual void Draw(CDC *inDC);
  115. };
  116. #endif // !defined(_REPELEMENT_H_B1A00117_DB1B_4E6F_832F_D1394FCF5CF6)