ExtendInfoIdentify.h
上传用户:hell82222
上传日期:2013-12-19
资源大小:1872k
文件大小:3k
源码类别:

CAD

开发平台:

Visual C++

  1. // ExtendInfoIdentify.h: interface for the CExtendInfoIdentify class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_EXTENDINFOIDENTIFY_H__381CBC70_66DE_46D3_8C6F_25F387F49A97__INCLUDED_)
  5. #define AFX_EXTENDINFOIDENTIFY_H__381CBC70_66DE_46D3_8C6F_25F387F49A97__INCLUDED_
  6. #if _MSC_VER > 1000
  7. #pragma once
  8. #endif // _MSC_VER > 1000
  9. /********************************
  10. 作者:徐灵甫
  11. 日期:2002。12。24
  12. 说明:扩展信息智能识别类的头文件
  13. //********************************/
  14. #include <afxtempl.h>
  15. #include "KmShare.h"
  16. #include "CShow.h"
  17. class KmBuffer;
  18. class CKmDataManager;
  19. class KmLegend;
  20. class CWordStyle;
  21. class CCellInfo
  22. {
  23. public:
  24. CCellInfo();
  25. CCellInfo(CCellInfo& cCellInfo);
  26. ~CCellInfo();
  27. public:
  28. void Zoom(double dScale);
  29. void Move(KmPoint ptOffset);
  30. BOOL IsSurround(KmBuffer* pData);
  31. void SetData(KmBuffer* pData,BOOL &bWordStyle,CWordStyle& ws);
  32. public://左下角为基准点
  33. CString m_strCellInfo;
  34. CString m_strCellData;
  35. KmRect m_cRect;
  36. };
  37. class CProductInfo
  38. {
  39. public:
  40. CProductInfo();
  41. ~CProductInfo();
  42. public:
  43. BOOL LoadFromFile(CString strFileName);
  44. public:
  45. KmPoint m_ptRightBottom; //右下角
  46. double m_dBiaoTiHight; //标题栏高度
  47. double m_dBiaoTiWidth; //标题栏宽度
  48. double m_dMingXiBottomHight;//明细底栏高度
  49. double m_dMingXiHight; //明细栏高度
  50. double m_dMingXiWidth; //明细栏宽度
  51. CArray<CCellInfo,CCellInfo>m_aBiaoTi; //标题栏CELL
  52. CArray<CCellInfo,CCellInfo>m_aMingXiBottom; //明细底栏CELL
  53. CArray<CCellInfo,CCellInfo>m_aMingXi; //明细栏CELL
  54. CArray<CCellInfo,CCellInfo>m_aMingXiTemp; //明细栏CELL
  55. public:
  56. void SetBaseInfo(KmPoint ptRightBottom,double dShowScale);
  57. void SetHaveBiaoTi(BOOL bHaveBiaoTi);
  58. void SetMingXiBottom();
  59. void SetMingXi(int ix,int iy);
  60. private:
  61. BOOL m_bHaveBiaoTi;
  62. };
  63. class CExtendInfoIdentify  
  64. {
  65. public:
  66. CExtendInfoIdentify(KmBuffer* pExtendInfoSource);
  67. virtual ~CExtendInfoIdentify();
  68. public:
  69. //从数据库创建扩展信息分析源集合的函数
  70. static KmBuffer* CreateExtendInfoSourceBuffer(CKmDataManager* pDataManager,BOOL &bRected,KmRect &rectOutSide);
  71. private:
  72. KmBuffer* m_pExtendInfoSource;
  73. public:
  74. BOOL IdentifyLegend(KmLegend* &pLegend,double& dShowScale,KmPoint& ptRightBottom);
  75. BOOL IdentifyProductInfo(double dShowScale,KmPoint ptRightBottom,CKmDataManager* pDataMgr);
  76. private:
  77. BOOL calculate_check_boundary(int up_line, int down_line,int right_line, int left_line );
  78. static void calculate_text_boundary(S_TEXT* &pText);
  79. };
  80. #endif // !defined(AFX_EXTENDINFOIDENTIFY_H__381CBC70_66DE_46D3_8C6F_25F387F49A97__INCLUDED_)