Doc.h
上传用户:wujian85
上传日期:2010-04-08
资源大小:227k
文件大小:3k
源码类别:

对话框与窗口

开发平台:

Visual C++

  1. // Doc.h : interface of the Doc class
  2. //
  3. /////////////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_DOC_H__17660EB1_0940_11D2_840B_0000B43382FE__INCLUDED_)
  5. #define AFX_DOC_H__17660EB1_0940_11D2_840B_0000B43382FE__INCLUDED_
  6. #if _MSC_VER >= 1000
  7. #pragma once
  8. #endif // _MSC_VER >= 1000
  9. #include <fstream.h>
  10. enum { pfoStatic = 0, pfoEdit, pfoLine, pfoRect, pfoFrame, pfoImage, pfoRadio, pfoCheck, pfoVLine, pfoHLine, pfoSubForm };
  11. enum { bdrNoBorder = 0, bdrSingle = 1, bdrDouble = 2, bdrDot = 3 };
  12. class CPrintFormObject
  13. {
  14. public:
  15. void Input(CString &cs);
  16. void Output(ofstream &ofs);
  17. void Print(CDC * pDC, CPoint offset);
  18. CFont * CreateFont(CFont &ft, CDC * pDC, const int iDiv);
  19. void Draw(CDC * pDC, int xos, int yos, int div);
  20. CPrintFormObject();
  21. CPrintFormObject(const CPrintFormObject * p);
  22. CPrintFormObject(const int tpe);
  23. virtual ~CPrintFormObject();
  24. CRect rc;
  25. char cId[64];
  26. char cCond[64];
  27. char cId2[64];
  28. bool bBold, bItalic, bUnderline;
  29. char cFont[64];
  30. int iSize;
  31. int iType;
  32. int iBack;
  33. COLORREF crBack, crFront, crBdr;
  34. int exInfo;
  35. int iBorder, iBorderSize;
  36. UINT uiTextFormat;
  37. bool bSelected;
  38. };
  39. extern CPrintFormObject ** ppClipObjs;
  40. extern int iClipFormObj;
  41. class CPage
  42. {
  43. public:
  44. CPage();
  45. virtual ~CPage();
  46. CString name;
  47. CRect rcPaper; // in 10th of MM
  48. CPrintFormObject ** ppObjs;
  49. int iFormObj;
  50. };
  51. class Doc : public CDocument
  52. {
  53. protected: // create from serialization only
  54. Doc();
  55. DECLARE_DYNCREATE(Doc)
  56. // Attributes
  57. public:
  58. CString name;
  59. CRect rcPaper; // in 10th of MM
  60. CPrintFormObject ** ppObjs;
  61. int iFormObj;
  62. int iPages, iSelpage;
  63. CPage ** pPages;
  64. int AddPage();
  65. void RemovePage(const int p);
  66. void SelectPage(const int p);
  67. // Operations
  68. public:
  69. // Overrides
  70. // ClassWizard generated virtual function overrides
  71. //{{AFX_VIRTUAL(Doc)
  72. public:
  73. virtual BOOL OnNewDocument();
  74. virtual void Serialize(CArchive& ar);
  75. virtual void DeleteContents();
  76. virtual void OnCloseDocument();
  77. virtual BOOL OnOpenDocument(LPCTSTR lpszPathName);
  78. virtual BOOL OnSaveDocument(LPCTSTR lpszPathName);
  79. //}}AFX_VIRTUAL
  80. // Implementation
  81. public:
  82. void SetPageRect(CRect &rc);
  83. void RenamePage(const int idx, CString cs);
  84. void FillList();
  85. void PasteClip();
  86. void CopySelected();
  87. void RemoveSelected();
  88. int HitTest(CPoint &pt, CRect &rc, int &idx);
  89. int SelectObject(CRect rcBound);
  90. int GetSelectedCount();
  91. void ClearSelection();
  92. CPrintFormObject * AddObject(const int tpe);
  93. virtual ~Doc();
  94. #ifdef _DEBUG
  95. virtual void AssertValid() const;
  96. virtual void Dump(CDumpContext& dc) const;
  97. #endif
  98. protected:
  99. // Generated message map functions
  100. protected:
  101. //{{AFX_MSG(Doc)
  102. afx_msg void OnAddPage();
  103. afx_msg void OnUpdateAddPage(CCmdUI* pCmdUI);
  104. afx_msg void OnRemovePage();
  105. afx_msg void OnUpdateRemovePage(CCmdUI* pCmdUI);
  106. //}}AFX_MSG
  107. DECLARE_MESSAGE_MAP()
  108. };
  109. /////////////////////////////////////////////////////////////////////////////
  110. //{{AFX_INSERT_LOCATION}}
  111. // Microsoft Developer Studio will insert additional declarations immediately before the previous line.
  112. #endif // !defined(AFX_DOC_H__17660EB1_0940_11D2_840B_0000B43382FE__INCLUDED_)