////////////////////////////////////////////////////////////////////////////// //文件 FormatDC.h //主要功能: // //程序编写: 2005-12-07 ///////////////////////////////////////////////////////////////////////////// #pragma once #include "..\stdafx.h" #include "..\XyDcEx.h" #include ".\outlinefrombitmap.h" namespace NFormatWriter { class CFormatDC : public CXyDCExport { public: CFormatDC(void); virtual ~CFormatDC(void); //为了输出连续曲线,必须在派生类中重写 //该函数可以将MoveTo、LineTo、PolyLine(CCurveEx)全部处理 virtual void PolyLine(CPointList& dp) = 0; virtual void DrawOutlineChar(LPTTPOLYGONHEADER lpph, long cbTotal, CPoint scrpt, BOOL bFill); virtual void DrawOutlineChar(COutlineFromBitmap& ofb, CPoint scrpt, BOOL bFill); void DrawOutlineText(CString strText, CPoint scrpt, double angle, BOOL bFill); virtual void DrawScreenCurve(void* pScreenCurve, BOOL bSolid); void DrawSeismicTraceWiggleLeft(void* pScreenCurve, double x0); void DrawSeismicTraceWiggleRight(void* pScreenCurve, double x0); void WriteString(CString value); //写字符串 CFile* GetFile(void); BOOL OpenWrite(LPCTSTR lpszPathName, bool bBinary); //打开写文件 void Close(); //关闭写文件 virtual void SetFile(CFile* pFile); virtual void Initial(void) = 0; virtual int OutFront(void) = 0; virtual int OutEnd(void) = 0; virtual CSize GetOutputSize(double cx, double cy); virtual void SetMapSize(CSize sz) {} protected: UINT m_wFontGlyph; CFile* m_pFile; //需要写的文件 bool m_bDeleteFile; //是否在结束时删除m_pFile指针 bool m_bBinaryFile; //打开写的文件是否是二进制的 CString m_strTemp; BOOL m_bNoWriteWhiteInImage; //写图像文件时是否输出白色的色块 FIXED FloatToFixed(double d); int mapFXY(FIXED fxy); }; }; using namespace NFormatWriter;